home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-04 / theprn09.zip / PRINTER.DOC < prev    next >
Text File  |  1992-07-31  |  120KB  |  2,725 lines

  1.  
  2.               ---------------------------------------------------               
  3.                 -----------------------------------------------                 
  4.                   -------------------------------------------                   
  5.                     ---------------------------------------                     
  6.                       -----------------------------------                       
  7.                         -------------------------------                         
  8.                           ---------------------------                           
  9.                             -----------------------                             
  10.                               -------------------
  11.                                 ---------------                                 
  12.  
  13.  
  14.                  The Printer           by         Rob W. Smetana
  15.                                                   and Pro~Formance
  16.  
  17.                                 ---------------
  18.                               -------------------                               
  19.                             -----------------------                             
  20.                           ---------------------------
  21.                         -------------------------------                         
  22.                       -----------------------------------                       
  23.                     ---------------------------------------                     
  24.                   -------------------------------------------                   
  25.                 -----------------------------------------------                 
  26.               ---------------------------------------------------               
  27.  
  28.  
  29.  
  30.                               The Printer (tm)
  31.  
  32.       Printer codes for hundreds of printers, that any programmer can use!
  33.  
  34.  
  35.                        **  Version 0.9b (Beta; 7/92)  **
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.     =====================================================================
  43.  
  44.         Copyright (C) 1989-1992, Rob W. Smetana    All Rights Reserved
  45.  
  46.  
  47.         132 Alpine Terrace   San Francisco, CA  94117   (415) 863-0530
  48.  
  49.  
  50.           The Printer, PDT, Pro~Formance and P~F are Trademarks of
  51.  
  52.                              Rob W. Smetana
  53.  
  54.     =====================================================================
  55.  
  56.                                                                       
  57.  
  58.  
  59.     =====================================================================
  60.  
  61.             INTRODUCTION:   Eliminating a Programmer's Nightmare
  62.  
  63.     =====================================================================
  64.  
  65.     Our objective in developing The Printer was to help eliminate a
  66.     nightmare that many programmers face:  printing formatted text on
  67.     different printers, with each printer requiring different instruc-
  68.     tions (ie., different printer codes).
  69.  
  70.      * If you want bold here, italics there, this phrase underlined,
  71.        etc., you need the printer codes to "turn on" these options.
  72.  
  73.      * And if you distribute your programs, you'll often need printer
  74.        codes for the dozens (or hundreds) of different printers your
  75.        users have -- unless you want to limit your audience!
  76.  
  77.        Few programmers have the time and resources to obtain appro-
  78.        priate codes for every printer.  Fortunately, you don't have
  79.        to:  The Printer offers you codes for hundreds of printers.
  80.  
  81.      * And with The Printer, you can, in many cases, develop simple print
  82.        routines you can use REGARDLESS OF WHICH PRINTER A USER SELECTS!
  83.  
  84.      * Finally, ANY programmer writing in ANY language can use The Printer.
  85.        If you can read a fixed-length record, you can use The Printer.
  86.  
  87.  
  88.     The Printer contains printer codes for over 720 different printers
  89.     (over 160 in user-supported versions).  For each printer, we al-
  90.     located space for about 70 printer codes.  Some of these are blank,
  91.     "user" codes -- so you (or your users) can customize codes for
  92.     specific needs, or we have room to expand into.
  93.  
  94.  
  95.     Examples:  Here's how The Printer can work.
  96.     -------------------------------------------
  97.  
  98.     In this package you'll find PRINTER.EXE -- a multi-purpose program
  99.     and printer database in one.  You (or your users) can use it to
  100.     install a printer.  And YOU can use it to expand the printer code
  101.     database to its fixed-length format -- which you can then view and
  102.     edit (more on this later).  When used with your programs : : :
  103.  
  104.      * Just run Printer.Exe and select a printer from the menu.  You
  105.        can then review and edit the printer codes for that printer.
  106.  
  107.      * When you're satisfied with the codes you see, press F2 and
  108.        we'll save to disk a small configuration file:  PRINTER.CFG.
  109.  
  110.  
  111.     Your programs need only deal with PRINTER.CFG!  It'll contain most
  112.     every printer code you'll need.  To enable or turn on a printer
  113.     feature, just print the appropriate "field."  For example:
  114.  
  115.                                                  continued . . .       
  116.  
  117.  
  118.     Examples (continued)
  119.  
  120.  
  121.     Note:
  122.  
  123.      * Our examples use BASIC code for its simplicity.  If you program
  124.        in other languages, mentally translate these simple examples.
  125.  
  126.      * Our examples assume we already read Printer.Cfg using a structure
  127.        or TYPE called "Printer."  The file TYPE.INC has the complete
  128.        printer code structure -- the record format of Printer.Cfg.
  129.  
  130.      * Our examples use "rtrim$," a BASIC function that trims trailing
  131.        spaces from strings.  Each printer code is allocated 14 bytes
  132.        even though some codes need just 1-3.  Trimming the trailing
  133.        spaces ensures we don't print excess spaces, shifting text right.
  134.  
  135.  
  136.          To reset the printer:  lprint rtrim$ (Printer.Initialize);
  137.  
  138.        To print Text$ in bold:  lprint rtrim$ (Printer.BoldON); Text$;
  139.            and back to normal:  lprint rtrim$ (Printer.BoldOFF)
  140.  
  141.            To Underline Text$:  lprint rtrim$ (Printer.UnderlineON); Text$;
  142.            and back to normal:  lprint rtrim$ (Printer.UnderlineOFF)
  143.  
  144.  
  145.  
  146.     That's it.  It's that simple!  While there are many variations on
  147.     this logic (like loading codes into an array, then printing already-
  148.     trimmed array elements), the basic simplicity remains.
  149.  
  150.  
  151.     And if your user installs a different printer, your code need NOT
  152.     change.  Just read Printer.Cfg, with the codes for the new printer,
  153.     and proceed as usual!
  154.  
  155.  
  156.                                                                        
  157.  
  158.  
  159.     =====================================================================
  160.  
  161.                                Packing List
  162.  
  163.     =====================================================================
  164.  
  165.     If you have any questions about anything here, give us a call at
  166.     (415) 863-0530.  A few minutes on the phone could save lots of time.
  167.  
  168.     File           Description
  169.     -----------    ------------------------------------------------------
  170.  
  171.     Printer.Exe.   A multi-purpose program AND database that:
  172.  
  173.                    * You may distribute along with your programs (if you
  174.                      wish) -- provided you have the registered version.
  175.  
  176.                    * Compresses the printer database by about 85 percent.
  177.  
  178.                    * Allows users to:
  179.  
  180.                      - Select a printer from a menu.
  181.                      - Review and edit printer codes.
  182.                      - Save a small configuration file (Printer.Cfg)
  183.                        to disk with codes appropriate for their printer.
  184.  
  185.                        YOU need only deal with this small "configuration
  186.                        file" to get all the information you'll need to
  187.                        drive your user's printer (for the most part).
  188.  
  189.                    * Lets YOU expand the database to its full, fixed-
  190.                      record size and format.  You may then view and edit
  191.                      it (using our PDT which we'll describe later?).
  192.  
  193.     Edit.Exe       A program you may, if you wish, distribute with your
  194.                    programs.  When you use Printer.Exe to select a printer,
  195.                    it saves to disk a small printer "configuration file."
  196.                    Should your users ever want to edit these printer codes,
  197.                    Edit.Exe is a small, fast way to do it.
  198.  
  199.     Printer.Dat    This is a "PDT structure file" that, together with
  200.                    Type.Inc, explains the field structure of the fixed-
  201.                    length files The Printer can create.
  202.  
  203.                    "PDT" (the Pro~Formance Data Tool), is a terrific
  204.                    program that's ideally suited to viewing and editing
  205.                    data files.  We could not have developed The Printer
  206.                    without PDT.  Section IV describes PDT more fully.
  207.  
  208.     Type.Inc       A QuickBASIC "include" file containing a TYPE (struc-
  209.                    ture) for both fixed-length files The Printer creates.
  210.  
  211.     Demo.Bas       A BASIC program which uses Type.Inc (in part) to dis-
  212.                    play printer codes (and their labels) from Printer.Cfg.
  213.                    Something like this could prove useful in your programs.
  214.  
  215.                                                                        
  216.  
  217.  
  218.     =====================================================================
  219.  
  220.                      A CONCEPT PIECE:  Beta Version 0.9b
  221.  
  222.     =====================================================================
  223.  
  224.     This is a beta version of The Printer (0.9b).  It's a concept piece
  225.     awaiting your feedback.  If you find The Printer useful, or if you
  226.     think it **could** be useful but isn't now, PLEASE take a moment and
  227.     jot down some ideas to help shape the future of this effort.  We, and
  228.     other programmers we spoke with, are convinced this effort is worth-
  229.     while.  But we're not yet sure which format to distribute printer
  230.     codes in, and which tools to offer.  Please help us shape the destiny
  231.     of The Printer.
  232.  
  233.     Here are some issues we'd like your feedback on.
  234.  
  235.      * Printer.Exe can expand its compressed database into a fixed-
  236.        length file -- so you can view and edit it, add or delete
  237.        printers, add printer codes, etc.  But currently, there's
  238.        no way to re-compress the fixed-length file and re-create
  239.        Printer.Exe.  How valuable would that option be?
  240.  
  241.      * Printer.Exe lets users edit and add printer codes.  Should it?
  242.  
  243.      * Printer.Cfg is saved as a fixed-length file.  In this form
  244.        one can easily use a TYPE or structure to read all codes in
  245.        one gulp.  But other formats could work as well:  delimited,
  246.        sequential, etc.  All have advantages; which is preferable?
  247.  
  248.      * Some printer codes must be sent in a specific sequence.
  249.        But a database, by itself, offers no clues as to the proper
  250.        sequence.  Would "Notes From The Trenches" help?  Can you
  251.        offer tips for printers you're familiar with?
  252.  
  253.      * The Printer contains no graphics-oriented printer codes since,
  254.        by themselves, graphics codes without other information can
  255.        be close to useless.  Would a related product would help?
  256.  
  257.      * What about newly-added printers?  Manufacturers release new
  258.        printers every year.  How can we best keep you up to date?
  259.  
  260.      * When printer codes are saved to Printer.Cfg, they're space-
  261.        padded to 14 bytes each.  Is this format easily usable in
  262.        all programming languages?
  263.  
  264.      * Some codes contain Null (Chr$(0)).  Is this a problem?
  265.  
  266.      * What tools would be useful in a "professional" package?  To
  267.        make The Printer accessible to all programmers regardless of
  268.        their means, we've considered offering two registered versions:
  269.        - A "plus" version with the basics.
  270.        - A "professsional" version with optional features (like
  271.          the ability to edit codes and re-create Printer.Exe).
  272.  
  273.        Reactions?  Features?  Options?
  274.                                                                        
  275.  
  276.  
  277.     =================================================================
  278.  
  279.                                CONTENTS
  280.  
  281.     =================================================================
  282.  
  283.     The rest of this manual is organized into 10 short sections:
  284.  
  285.      Section   I:  Copyrights, License, Disclaimer, Registering,
  286.                    Distributing The Printer
  287.  
  288.      Section  II:  Installing The Printer;  Quick Start
  289.  
  290.      Section III:  Introducing PDT -- a "Must Have" for Programmers
  291.  
  292.      Section  IV:  What You MUST KNOW to Use Printer Codes
  293.  
  294.      Section   V:  Using Printer.Exe -- Use #1, Selecting a Printer
  295.  
  296.      Section  VI:  Using Printer.Exe -- Use #2, Expanding the Database
  297.  
  298.      Section VII:  Using Printer Codes with "Placeholders"
  299.  
  300.      Appendix  I:  The Record Structure of The Printer's Data Files
  301.  
  302.      Appendix II:  Using PDT to View and Edit ANY File
  303.  
  304.      Appendix III: Other Programs by Pro~Formance; Ordering
  305.  
  306.     =================================================================
  307.  
  308.  
  309.  
  310.                                                                      
  311.  
  312.  
  313.     =================================================================
  314.  
  315.                  Section I:   Copyrights and Trademarks
  316.  
  317.     =================================================================
  318.  
  319.     For information, contact:              Rob W. Smetana
  320.                                            Pro~Formance
  321.                                            132 Alpine Terrace
  322.                                            San Francisco, CA  94117
  323.                                            (415) 863-0530
  324.  
  325.  
  326.           The Printer is Copyright 1989-1992, Rob W. Smetana
  327.                     All Rights Reserved Worldwide
  328.  
  329.  
  330.       The Printer, The Pro~Formance Data Tool and PDT are Trademarks
  331.                            of Rob W. Smetana
  332.  
  333.             LaserJet is a Trademark or Hewlett-Packard Corp.
  334.  
  335.       Other trademarks belong to their respective trademark holder.
  336.  
  337.  
  338.     =================================================================
  339.  
  340.                      Disclaimer and Limited Warranty
  341.  
  342.     =================================================================
  343.  
  344.     We've made every effort to ensure the reliability and accuracy
  345.     of this product.  If you find errors in this material, or if you
  346.     have comments, suggestions or requests, please contact us immedi-
  347.     ately.  But neither Rob W. Smetana nor Pro~Formance can assume
  348.     any liability for damage that occurs because of usage of or
  349.     reliance on this product.
  350.  
  351.     We warrant that any disks we send you will be free from defects
  352.     in materials or workmanship for a period of 30 days from the date
  353.     shipped.
  354.  
  355.     THIS SOFTWARE AND ALL ACCOMPANYING MATERIAL(S) ARE OFFERED AS-IS.
  356.     EXCEPT FOR THE WARRANTY DESCRIBED IN THE ABOVE PARAGRAPH, THERE
  357.     ARE NO WARRANTIES EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED
  358.     TO, IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PAR-
  359.     TICULAR PURPOSE, AND ALL SUCH WARRANTIES ARE EXPRESSLY AND SPECIFI-
  360.     CALLY DISCLAIMED.
  361.  
  362.     IN NO EVENT SHALL Rob W. Smetana and/or Pro~Formance BE RESPONSIBLE
  363.     FOR ANY INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES OR LOST PROFITS,
  364.     EVEN IF Rob W. Smetana and/or Pro~Formance HAVE BEEN ADVISED OF THE
  365.     POSSIBILITY OF SUCH DAMAGE.
  366.  
  367.     Information contained herein and in the printer database is subject
  368.     to change without notice and does not represent a commitment on the
  369.     part of Rob W. Smetana and/or Pro~Formance.
  370.                                                                        
  371.  
  372.  
  373.     =================================================================
  374.  
  375.                    License and Non-Disclosure Agreement
  376.  
  377.     =================================================================
  378.         
  379.     Running Printer.Exe, using anything in this package, or registering
  380.     for The Printer indicates your understanding and acceptance of the
  381.     license and warranty herein.
  382.  
  383.     The software and printer code database described in this document
  384.     are furnished under a license agreement.  The software and database
  385.     may be used only in accordance with the terms of that agreement.
  386.  
  387.      * No work derived from this material may be distributed in any
  388.        form if it substantially or in part duplicates the functionality
  389.        and/or objectives of The Printer and the printer database.
  390.  
  391.      * REGISTERED USERS:  This product is licensed to you alone.  You
  392.        may make copies solely for the purpose of reasonable back-up of
  393.        this package.  You agree not to copy or transmit this material
  394.        for any other purpose, except as provided for below, and further
  395.        agree not to make it available to others through a network
  396.        configuration.
  397.  
  398.      * REGISTERED USERS may use materials included here, and distribute
  399.        Printer.Exe and Edit.Exe to clients and users of programs or code
  400.        you've written, PROVIDED THAT:
  401.  
  402.        - You do NOT distribute, or allow to be distributed, the expanded,
  403.          un-encrypted printer code database, or any significant portion
  404.          thereof.  By "significant" we mean 10 records or more.
  405.  
  406.        - You do NOT reveal to anyone the "password" required to expand
  407.          the compressed, encrypted database.
  408.  
  409.      * REGISTERED USERS:  Should you distribute, to users of programs you
  410.        have written, your own version of the printer database, you agree to:
  411.  
  412.        - Encrypt the database such that no other person or program,
  413.          save yours, can access it.
  414.  
  415.        - Not disclose to anyone the method(s) used to encrypt or
  416.          de-encrypt the database.
  417.  
  418.        - Allow users of your programs access only to that reasonable
  419.          portion of the database that serves their immediate needs.
  420.  
  421.          While it would be considered reasonable for a specific user
  422.          or network to need access to printer records for 1-3 dif-
  423.          ferent printers simultaneously, it would be unreasonable
  424.          to allow simultaneous access to 10 printer records or more.
  425.  
  426.      * SHAREWARE VERSIONS may be used for 90 days so you may thoroughly
  427.        evaluate how The Printer may serve your needs and those of your
  428.        users.  But you may not distribute any part of The Printer in any
  429.        way except as provided for in "Distributing The Printer."
  430.                                                                        
  431.  
  432.  
  433.     =================================================================
  434.  
  435.                         Distributing The Printer
  436.  
  437.     =================================================================
  438.  
  439.  
  440.     Shareware distributors, bulletin boards and user clubs may
  441.     distribute "user-supported" (or shareware) versions of this
  442.     software provided that:
  443.  
  444.      *  Your company name, literature, etc. do not promote or
  445.         include the words "freeware" or "free" software -- which
  446.         terms misrepresent "user-supported" software.  Expressly
  447.         prohibited from distributing any software by Pro~Formance,
  448.         Rob W. Smetana and/or Brandon S. Smetana are:  American
  449.         Freeware, California Freeware and U.S. Freeware.
  450.  
  451.      *  You include, unmodified, all files included with this
  452.         software including:
  453.  
  454.         Printer.Exe, Printer.Doc, Edit.Exe, Printer.Dat, Type.Inc,
  455.         Demo.Bas and any other files mentioned in Readme.Bat or
  456.         Packing.Lst.
  457.  
  458.      *  You charge a "distribution fee" of no more than $8 (US).
  459.  
  460.      *  You clearly state that continued use of "user-supported"
  461.         software REQUIRES paying for the software.
  462.  
  463.  
  464.                                                                        
  465.  
  466.  
  467.     =================================================================
  468.  
  469.             The Benefits of Registering;  How we "Say Thanks"
  470.  
  471.     =================================================================
  472.  
  473.     The Printer is NOT free software.  It is neither "public domain"
  474.     software nor "freeware."  It is "user-supported" shareware.
  475.  
  476.     This software is Copyright 1989-1992, Rob W. Smetana.  It is
  477.     protected by both United States copyright law and international
  478.     treaty provisions.
  479.  
  480.     Shareware versions of The Printer work just like fully registered
  481.     versions except that:
  482.  
  483.      * Shareware versions of Printer.Exe and Edit.Exe remind you that
  484.        they're unregistered and may not be freely distributed.
  485.  
  486.      * Shareware versions contain printer codes for over 160 of the
  487.        most popular printers.  To "say thanks" to those who register,
  488.        we send them a database with over 700 printers.
  489.  
  490.      * All versions include an option to expand the database to a
  491.        fixed-length version (so you may view and edit it).  Shareware
  492.        versions will write out about 50 records so you'll be able to
  493.        clearly see how the full database may be viewed and edited.
  494.  
  495.  
  496.     To Register Instantly:
  497.     ----------------------
  498.  
  499.     Call (415) 863-0530 with your VISA or MasterCard number.
  500.  
  501.      * This can cut 2-3 weeks off delivery time, since we needn't
  502.        wait for your order to arrive by mail, and we don't have
  503.        to wait 10 business days for checks to clear the bank.
  504.  
  505.  
  506.     To Register by Mail:
  507.     --------------------
  508.  
  509.     Just fill out the order form at the back of this manual.
  510.  
  511.      * PLEASE NOTE that, because we offer so many programs, our
  512.        order form has 2 pages.
  513.  
  514.        - Page 1 lists each program and the cost of each.
  515.  
  516.        - You fill in page 2, indicating which program(s) you'd like
  517.          to order, and adding your name, address, credit card
  518.          information (if appropriate) and so forth.
  519.  
  520.      * Mail your order form to:
  521.  
  522.        Pro~Formance   132 Alpine Terrace   San Francisco, CA  94117  USA
  523.  
  524.                                                                        
  525.  
  526.  
  527.     =================================================================
  528.  
  529.            Section II:  Installing The Printer;  Quick Start
  530.  
  531.     =================================================================
  532.  
  533.     Installing The Printer
  534.     ----------------------
  535.  
  536.     Copy these files to any path:  (only Printer.Exe is required)
  537.  
  538.               Printer.Exe, Edit.Exe, Type.Inc, Demo.Bas.
  539.  
  540.     If you plan to expand the database to it's fixed-length format, we
  541.     strongly urge you to get a copy of PDT to help view and edit it.  If
  542.     you do install PDT, be sure to copy Printer.Dat to PDT's special sub-
  543.     directory:  PDT.DIR.  If you do, whenever you run PDT and open the
  544.     fixed-length database, PDT will be able to automatically format your
  545.     view of the database in logical rows and columns.  See Appendix II.
  546.  
  547.  
  548.     Quick Start
  549.     -----------
  550.  
  551.     We know you're anxious to begin, so try both of these.  Then, BE
  552.     SURE to read this manual later -- with information you MUST KNOW!
  553.  
  554.      * Select a printer:
  555.  
  556.        - Run Printer.Exe.  The bottom of your screen will always have
  557.          instructions on what you should do next.
  558.        - Highlight a printer and press <enter> to "select it."
  559.        - Review the printer codes for that printer; edit any you care to.
  560.        - Press F2 to save your printer codes to Printer.Cfg.
  561.        - Press F10 twice to exit to DOS.
  562.  
  563.        Now review Printer.Cfg -- using PDT or Demo.Bas that we included.
  564.        Or use Type.Inc or Printer.Dat as the basis of a program you
  565.        write to review or try out the printer codes.
  566.  
  567.  
  568.      * Expand the database to it's fixed-length format:
  569.  
  570.        - Ensure there's enough disk space for Printer.Dat:  about 800k
  571.          with registered versions; about 50k with shareware versions.
  572.        - Run Printer.Exe like this:
  573.              Registered versions:    printer  serial #  <enter>
  574.               Shareware versions:    printer  rws-54321 <enter>
  575.  
  576.          With registered versions, replace "serial #" with the serial
  577.          number we sent you with your registered version.  And share-
  578.          ware versions will write out about 50 records to give you a
  579.          feel for all features of The Printer.
  580.  
  581.        Now review Printer.Dat.  Here's where PDT will come in v-e-r-y
  582.        handy -- especially if you installed the PDT "structure file"
  583.        (also called Printer.Dat) in PDT's special subdirectory.
  584.                                                                        
  585.  
  586.  
  587.     =================================================================
  588.  
  589.        Section III:  Introducing PDT  (the Pro~Formance Data Tool)
  590.  
  591.     =================================================================
  592.  
  593.     We've mentioned PDT before.  And we'll mention it again, simply
  594.     because it's the finest tool we've ever seen to view and edit ANY
  595.     file -- especially fixed-length files like Printer.Dat, Printer.Cfg,
  596.     dBase files, and random record files produced by any language.  We
  597.     could not have developed The Printer without PDT.
  598.  
  599.     Here's a brief overview of PDT.  Appendix II explains how to use PDT
  600.     to view/edit The Printer's files as well as other files you may have.
  601.  
  602.      * With PDT you can view and edit ANY type of file:  dBase files,
  603.        other types of data files, executable files (eg., .Exe or .Com
  604.        files), EBCDIC files, ASCII files, font files -- any file.
  605.  
  606.      * You can view and edit ANY SIZE file -- up to two gigabytes!  Jump
  607.        from the top to the bottom of any size file instantly.  And you
  608.        can open up to 4 files at once.  View and compare different files.
  609.        Or work in different areas of the same file.  Since each file can
  610.        be up to two gigabytes in size, you can work with up to 8 giga-
  611.        bytes of data at once!
  612.  
  613.      * You can manage database files like you've never been able to
  614.        before.  PDT offers unique features to help you manage dBase
  615.        or ANY fixed-length record file (data or font files, etc.).
  616.  
  617.        - PDT detects dBase ".DBF" files, formatting your "view" of
  618.          them so fields are automatically formatted out for you.
  619.  
  620.        - With other fixed-length data files (like those created by
  621.          programs written in C, Pascal, BASIC, COBOL, etc.), PDT
  622.          lets you easily and quickly define their "structure."
  623.  
  624.        - Once PDT knows the structure of a file, you'll be able to:
  625.  
  626.          -- Easily view and edit the file, tabbing quickly from
  627.             field to field.  You can even press a key to edit
  628.             numeric fields stored in "packed binary" form.
  629.  
  630.          -- Mark blocks (either columns or records) and then:
  631.             Export them, Copy them, Erase or Fill them, etc.
  632.  
  633.          -- Expand or Shrink the width of fields.  And, if you
  634.             like, PDT will automatically update the dBase header
  635.             and its own "structure" files to reflect the change.
  636.  
  637.      * PDT even manages EBCDIC files -- like those found on, or
  638.        downloaded from, large IBM computers.
  639.  
  640.      * PDT can also help you:
  641.        - Repair files -- regardless of their type or size.
  642.        - Determine a file's structure (record or field length, etc.).
  643.        - Edit executable files (customize messages, options or serial #s).
  644.                                                                        
  645.  
  646.  
  647.     =================================================================
  648.  
  649.         Section IV:   What You MUST KNOW to Use The Printer Codes
  650.  
  651.     =================================================================
  652.  
  653.     Slots for 70 Printer Codes
  654.     --------------------------
  655.  
  656.     For each printer we've reserved 70 "slots" for printer codes.  About
  657.     17 of these are "expansion" or "user" slots.  You can use these to
  658.     add codes specific to programs you write.  Or your users can custo-
  659.     mize codes to suit their specific needs.  And if we later add codes,
  660.     we'll have room to expand into without disturbing what exists.
  661.  
  662.  
  663.     Codes are Stored as Strings
  664.     ---------------------------
  665.  
  666.     Printer codes are stored in string (or binary) format.  You don't
  667.     need to parse or decipher codes like 027, 064, 018.   And instead
  668.     of 11 bytes these codes would consume, we need only 3.  But, if
  669.     you expand the printer database to its fixed-length format (or if
  670.     you look at Printer.Cfg) you'll find each printer code has been
  671.     allocated 14 bytes -- the code plus trailing spaces (Chr$(32)). This
  672.     fixed-length structure simplifies editing, especially with PDT.
  673.  
  674.     In most cases, to use a printer's features, just send a code to the
  675.     printer as-is -- after trimming off the trailing spaces.  Be sure to
  676.     trim ASCII character 32 only (see below).  For example, to turn
  677.     Italics on, a BASIC programmer might just read Printer.Cfg (using a
  678.     TYPE variable or structure) and then:
  679.  
  680.       LPRINT RTrim$ ( Printer.ItalicsON ).
  681.  
  682.  
  683.     Beware Character 0
  684.     ------------------
  685.  
  686.     Some codes contain or end with ASCII character 0.  It's CRITICAL
  687.     that you don't interpret this Nul character as white space and
  688.     trim it -- the code is meaningless without it.  BASIC programmers:
  689.  
  690.      * DO use BASIC's RTRIM$ to trim blanks (Chr$(32)) from codes.
  691.  
  692.      * Do NOT use functions like Crescent Software's qpRTRIM or
  693.        pdqRTRIM.  Crescent's functions trim BOTH character 32 AND
  694.        character 0 -- which could render some codes worthless!
  695.  
  696.  
  697.     Note:  Epson printers often accept printer codes in two different
  698.     formats such as:  "Escape + Chr$(#)" or "Escape + #" ("#" = a number).
  699.     We've heard rumors some Epson compatibles dislike the 2nd format; so
  700.     we standardized on the 1st.  This renders such codes a little harder
  701.     to maintain and edit (although PDT lets you enter any ASCII character).
  702.                                                                        
  703.  
  704.  
  705.     Placehoders (ASCII character 251:  √)
  706.     -------------------------------------
  707.  
  708.     While you can use most printer codes as-is, a few codes require that
  709.     you "fill in the blanks."  Actually, you'll replace "placeholders"
  710.     with appropriate code(s).
  711.  
  712.     For example, for most printers the database contains codes to switch
  713.     to 6- or 8-lines-per-inch (8-LPI).  But suppose your program needs
  714.     finer precision -- you need to move down the page 3/60 of an inch.
  715.     ("<" stands for ESCAPE -- ASCII character 27.)
  716.  
  717.      * An Epson "Alternate Line Spacing" code might look like:  <A√
  718.  
  719.      * The comparable code for LaserJets might look like this:  <&a√V
  720.  
  721.     In both cases you'd scan for our placeholder (ASCII 251 or √), and
  722.     replace it with "3" for Epson LQ printers, or "36" for LaserJets.
  723.     (Lasers use 1/720 as the unit of motion for this code, Epsons 1/60).
  724.  
  725.     This obviously requires that you know the units of measurement or
  726.     the formulas needed to calculate variables.  We'll provide some of
  727.     these later.
  728.  
  729.     You can decide to use these codes or ignore them.  Here are some
  730.     codes that may require that you replace placeholders with variables:
  731.  
  732.  
  733.                          Select Character Sets
  734.                            Select Master Font
  735.  
  736.                          Variable Line Spacing
  737.                     Alternate Variable Line Spacing
  738.  
  739.                           Page Length: Inches
  740.                           Page Length: Lines
  741.  
  742.                              Set Tab Stops
  743.  
  744.                              Set Top Margin
  745.                            Set Bottom Margin
  746.                             Set Left Margin
  747.                             Set Right Margin
  748.  
  749.                   Absolute Move to a Vertical Location
  750.                   Relative Move to a Vertical Location
  751.  
  752.                  Absolute Move to a Horizontal Location
  753.                  Relative Move to a Horizontal Location
  754.  
  755.                                                                        
  756.  
  757.  
  758.     Some Codes are Blank Opportunities for your Users
  759.     -------------------------------------------------
  760.  
  761.     There are many "families" of printers:  dot matrix, laser, "daisy-
  762.     wheel," Postscript (which we did not include), etc.  Certain types
  763.     of printer codes are relevant for some families but not others.
  764.  
  765.     For example, dot matrix printers offer "draft" and "near letter
  766.     quality" options.  Other families have no comparable option.  Sim-
  767.     ilarly, laser printers let you save (push) the cursor position,
  768.     jump somewhere else on the page to do something, then restore (pop)
  769.     the cursor and continue where you left off.  Character- or line-
  770.     oriented printers (eg., dot matrix) offer nothing comparable.
  771.  
  772.     The point is that for EVERY printer, some "slots" will be blank --
  773.     a consequence of combining different families into one database.
  774.     But as long as your users use Printer.Exe to "install" a printer,
  775.     THEY can fill in these blanks (or not) as they see fit.  Then, if
  776.     they turn on options, it's their responsibility to ensure a printer
  777.     code exists for them.  If it's blank, nothing will happen.
  778.  
  779.     One reason we mention this is that if you run Printer.Exe and select
  780.     a printer to review, you should EXPECT that at least 20 of 70 codes
  781.     will be blank.  Of these 20+, 17 or so are "user" codes.
  782.  
  783.  
  784.     LaserJet Font Codes
  785.     -------------------
  786.  
  787.     Because we combined different families of printers into one data-
  788.     base, some compromises had to be made.
  789.  
  790.     We settled on 14 bytes for each printer code after carefully
  791.     reviewing the widths of thousands of codes.  But we knew this
  792.     would truncate some Hewlett-Packard codes -- particularly those
  793.     specifying LaserJet and DeskJet fonts.  Not to worry . . .
  794.  
  795.     We've learned from experience that to switch fonts on LaserJets,
  796.     one should be as specific as possible.  That's because lasers may
  797.     have 2 or more fonts which share **some** attributes.  If you want,
  798.     say, condensed print (17 pitch), be sure to specify which one:
  799.     fixed/proportional, medium/bold, upright/italic, Line Printer/Times
  800.     Roman, etc.  If you don't, you're in for some surprises.
  801.  
  802.     To select fonts, one should specify Orientation, Fixed/Proportional,
  803.     Symbol Set, Pitch, Height, Style, Stroke Weight and Type Face.  This
  804.     can be done with a code like this ("<" = Escape)
  805.  
  806.                         <(10U<(s0p10h12v0s0B<(s3T
  807.  
  808.     That's 25 characters -- which we don't have room for.  But you CAN
  809.     accurately specify fonts.  Just send 2 or more of the codes we
  810.     provide (some may have "placeholders").  In this case you'd send:
  811.  
  812.      * Select Character Set    (<10U)    * Select 10 pitch
  813.      * Bold ON                           * Select Type Face    (<(s3T)
  814.  
  815.                                                                        
  816.  
  817.  
  818.     Origin(s) of this Printer Database
  819.     ==================================
  820.  
  821.     When we originally considered developing this database, we asked
  822.     other programmers to contribute by sending us disks or E-Mail with
  823.     their offerings.
  824.  
  825.     A handful of people contributed.  Of these, 2 sent "electronic"
  826.     contributions.  The rest sent paper (copies of manuals, books,
  827.     etc.), realizing, like we did, that typing printer codes takes
  828.     time and is boring, tedious and potentially error-filled.
  829.  
  830.     We didn't want to manually enter this stuff either.  And we weren't
  831.     satisfied with the number of printers we had.  So we looked around
  832.     for existing databases.  We found several, merged them together,
  833.     then used what contributors sent to:
  834.  
  835.      * Verify what we had.
  836.  
  837.      * Fill in the gaps (missing printers or missing codes).
  838.  
  839.      * Reconcile inconsistencies between 2 or more sets of codes for
  840.        the same printer.
  841.  
  842.  
  843.  
  844.     Special Thanks to Rick Pedley and Matt Pritchard
  845.     ------------------------------------------------
  846.  
  847.     Rick sent us codes for hundreds of printers.  Matt sent, direct from
  848.     Epson and Toshiba, summaries of printer codes for dozens of the most
  849.     popular printers.
  850.  
  851.     These were invaluable!  Without them, we could not have reconciled
  852.     the many inconsistencies we found among codes for the same printer
  853.     (from different databases).
  854.  
  855.  
  856.     A Work in Progress; Bugs and Their Ilk
  857.     ======================================
  858.  
  859.     Like many good programs, this database may never be finished.
  860.     There will always be printers to add.  And there are many holes --
  861.     printers for which we have few codes (some have just 2-3 codes).
  862.  
  863.     And what can I say.  There are bound to be bugs in this database.
  864.  
  865.     If you find errors, if you can fill in missing codes, or if you add
  866.     printers, please send them to us -- ON DISK.  You can use PDT to
  867.     create new/modified records in the proper format.  Then just use
  868.     PDT's Block Mark and Block Export features to export new records to
  869.     disk and send them to us (or call us to upload your contributions).
  870.  
  871.  
  872.                                                                        
  873.  
  874.  
  875.     Industry Standardization Will Help the Next Generation(s)
  876.     =========================================================
  877.  
  878.     One of the things that makes this database so valuable (and so
  879.     tedious to manage) is that printer manufacturers have used so
  880.     many different (read, proprietary) ways to accomplish the same
  881.     thing.  Even the same manufacturer may change codes with new models.
  882.     For example, Epson's line spacing codes may mean DIFFERENT THINGS
  883.     (or may be irrelevant) depending on whether you're dealing with
  884.     early or later model Epson printers.
  885.  
  886.     This is an impossible nightmare for most programmers.  They simply
  887.     don't have the time or resources to obtain appropriate codes for
  888.     each printer.  Fortunately:
  889.  
  890.      * This printer database is available, giving programmers tools
  891.        to manage hundreds of printers in basic ways with just a few
  892.        lines of code, and without having to worry about which printer
  893.        is installed (or which printer their user switches to).
  894.  
  895.      * And printer manufacturers seem to be standardizing on a small
  896.        core of "emulations."  They've realized, it appears, that the
  897.        programmer's nightmare might mean their printer won't get sup-
  898.        ported.  So, by building in options to emulate Epson, LaserJet,
  899.        ProPrinter or other popular printers, they can ensure broad
  900.        support for their printers.
  901.  
  902.     About 8 basic emulation modes exist:
  903.  
  904.       1.  Early Epson 9-pin        2.  Later Epson 9-pin
  905.       3.  Epson LQ (24-pin)        4.  IBM Graphics
  906.       5.  IBM Proprinter           6.  Hewlett-Packard Laserjet
  907.       7.  Diablo                   8.  Qume Sprint
  908.  
  909.     Most newer printers emulate at least one of these.  Some emulate 2
  910.     or more.  But printers still exist that use proprietary codes.  This
  911.     printer database will help you manage the vast majority of them.
  912.  
  913.                                                                        
  914.  
  915.  
  916.     =================================================================
  917.  
  918.           Section V:  Using Printer.Exe -- Installing a Printer
  919.  
  920.     =================================================================
  921.  
  922.     As we mentioned, PRINTER.EXE is a multi-purpose program that:
  923.  
  924.      * You may distribute along with your programs (if you wish).
  925.  
  926.      * Compresses printer codes by about 85 percent (and ZIPs to a
  927.        much-smaller file of about 40k).
  928.  
  929.      * Allows users to:
  930.        -- Select a printer from a menu.
  931.        -- Review and edit printer codes.
  932.        -- Save a small file (Printer.Cfg; 2k) to disk with
  933.           appropriate codes for their printer.
  934.  
  935.           YOUR program(s) need only deal with this small "config-
  936.           uration file" to get all the information you'll need
  937.           to drive your user's printer (for the most part).
  938.  
  939.      * Allows YOU to expand the database to its full, fixed-record size
  940.        and format.  You may then use our PDT program to view and edit it.
  941.  
  942.  
  943.     Selecting a Printer
  944.     -------------------
  945.  
  946.     To select (or install) a printer, you (or your users) would simply:
  947.  
  948.      1.  Run Printer.Exe.  Instructions on what to do next always
  949.          appear at the bottom of your screen.
  950.  
  951.  
  952.      2.  A menu will pop up with the names of hundreds of printers.
  953.          (On slow PCs it can take a while to load this menu.)
  954.  
  955.  
  956.      3.  TO SELECT A PRINTER, highlight it and press <Enter>.  To
  957.          exit to DOS, press F10.  To highlight a printer:
  958.  
  959.          - Press Down, Up, PgDn, PgUp, End or Home.
  960.  
  961.          - Or press the first letter of the manufacturer's name.
  962.            For example, to view Epson printers, press "E."  If
  963.            "Epson" is not the first manufacturer whose name begins
  964.            with "E," press "E" or Down or PgDn until you find Epson.
  965.  
  966.          Highlight your printer (or one close to it), then press <Enter>.
  967.          You'll then have a chance to review and edit the printer codes.
  968.  
  969.          NOTE:  If your printer isn't listed in the menu, choose one
  970.          that's close.  Then review the printer codes and edit them as
  971.          needed.  And beware that your printer may appear 2 or more
  972.          times -- if it emulates 1 or more printers.
  973.                                                       continued . . .    
  974.  
  975.  
  976.     Selecting a Printer (continued)
  977.  
  978.  
  979.      4.  ONCE YOU SELECT A PRINTER, we'll display all printer codes we
  980.          have for that printer.  This gives you a chance to review or
  981.          edit them.  Press F10 to select a different printer or to exit.
  982.  
  983.          - To REVIEW printer codes, press Down or Up cursor keys.
  984.  
  985.          - To EDIT a printer code, press Down/Up to highlight a code,
  986.            then press <Enter> to indicate you want to edit it.  Edit
  987.            the code, then press <Enter> again to accept it.
  988.  
  989.  
  990.      5.  IF YOU CHOOSE TO EDIT A CODE, an edit window pops up.  It
  991.          identifies the code, and, if appropriate, alerts you if the
  992.          code you're editing contains ASCII character 0.  If you see
  993.          this message, take care that you don't inadvertently delete
  994.          Chr$(0) or replace it with a space (Chr$(32)).
  995.  
  996.          While editing printer codes:
  997.  
  998.          - Press Escape to enter Escape -- ASCII character 27.
  999.  
  1000.          - Press Ctrl-2 to enter ASCII character 0.
  1001.  
  1002.          - To enter ASCII characters 1-31 or 128-255, hold down ALT,
  1003.            then enter the ASCII number on the numeric keypad.
  1004.  
  1005.          - Press Ctrl-Home to erase a code, or Ctrl-End to erase
  1006.            from the cursor to the end of the line.
  1007.  
  1008.          - Press <Enter> to accept the code as edited.
  1009.  
  1010.  
  1011.     6.  WHILE REVIEWING PRINTER CODES : : :
  1012.  
  1013.          - Press F2 to SAVE printer codes.  Printer.Exe will save the
  1014.            codes (as edited) to Printer.Cfg, and will then exit to DOS.
  1015.            You MUST do this before pressing F10, or any changes you've
  1016.            made will be erased.  The database codes aren't changed.
  1017.  
  1018.            If "Printer.Cfg" already exists, we'll overwrite it!  To
  1019.            prevent this, rename "Printer.Cfg" before running Printer.
  1020.  
  1021.            See Appendix I as well as Type.Inc for information on how to
  1022.            read Printer.Cfg and use its codes from within your programs.
  1023.  
  1024.            And remember that we also included Edit.Exe in case you (or
  1025.            your users) need to edit the printer codes in Printer.Cfg.
  1026.  
  1027.  
  1028.          - Press F10 to return to the "select a printer" menu.  There
  1029.            you can select another printer, or press F10 to exit to DOS.
  1030.  
  1031.                                                       continued . . .
  1032.                                                                        
  1033.  
  1034.  
  1035.     Editing Printer Codes (continued)
  1036.  
  1037.     NOTES:
  1038.     ------
  1039.  
  1040.      * Because Escape is a valid printer code, we use F10 rather than
  1041.        Escape to back up to the previous menu, or to exit to DOS.
  1042.  
  1043.  
  1044.      * Some printer codes contain ASCII character 0.  Because this
  1045.        looks like a space (character 32), one must take care when
  1046.        editing these codes.  And character 0 cannot be entered as
  1047.        other characters can.
  1048.  
  1049.        - If, when you select a printer code to edit, it contains
  1050.          character 0, we'll display a message urging you to be
  1051.          careful when editing this code.
  1052.  
  1053.        - IBM declared that Chr$(0) be entered as Ctrl-2!  So we've
  1054.          adopted that "standard" -- such that it is.
  1055.  
  1056.  
  1057.      * Printer.Cfg is a 2k, fixed-length file containing up to 70
  1058.        printer codes and their labels.  See the next section for
  1059.        details on using codes in Printer.Cfg.  And see Appendix
  1060.        I for details on the record/field structure of both Printer.Cfg
  1061.        and Printer.Dat (the expanded, fixed-length database).
  1062.  
  1063.  
  1064.      * We have not built in an option to edit the labels associated with
  1065.        each printer code.  In most cases this is okay.  But the final
  1066.        set of codes will all be labelled "User" -- not very descriptive.
  1067.  
  1068.  
  1069.  
  1070.     Using Edit.Exe:  Editing Printer.Cfg
  1071.     ====================================
  1072.  
  1073.     We included Edit to serve a need such as this:
  1074.  
  1075.      * You distribute Printer.Exe and Edit.Exe with your programs.
  1076.  
  1077.      * Your users use Printer to select a printer, and then no longer
  1078.        want to consume it's 130k of disk space.  So they archive or
  1079.        delete it (keeping a backup in case they install another printer).
  1080.  
  1081.      * But they may need to edit or add printer codes.  So they keep
  1082.        the 9-k Edit.Exe around to edit Printer.Cfg.
  1083.  
  1084.  
  1085.     Edit works just like Printer.Exe does -- except you don't select a
  1086.     printer first.  Edit reads Printer.Cfg (or aborts if Printer.Cfg
  1087.     isn't on the current path).  It then displays the printer codes,
  1088.     lets you edit them, than asks you to press F2 to save them.  Like
  1089.     Printer, Edit will overwrite Printer.Cfg when you save new codes.
  1090.     F10 aborts the edit, leaving the existing Printer.Cfg intact.
  1091.                                                                        
  1092.  
  1093.  
  1094.     Using Printer.Cfg in Your Programs
  1095.     ==================================
  1096.  
  1097.     Be sure to see Appendix I.
  1098.  
  1099.     Printer.Cfg, the printer configuration file saved by Printer.Exe
  1100.     when you select a printer, consists of two, 1024-byte records.
  1101.  
  1102.      * Both records begin with a 44-byte header identifying the
  1103.        printer.  We describe the header's layout in Appendix I.
  1104.  
  1105.      * The remaining 980 bytes consists of 70, 14-byte fields, 1 for
  1106.        each printer code.
  1107.  
  1108.        - Record #1 contains descriptions (labels) for each code.
  1109.  
  1110.        - Record #2 contains the actual printer codes.
  1111.  
  1112.  
  1113.     We chose this record format to make it easy, from within your pro-
  1114.     grams, to display all 70 printer codes and their descriptions.
  1115.     Saving the labels will be especially useful when (if) we offer
  1116.     an option letting users change the labels as well as the codes.
  1117.  
  1118.      * With so many printer options to choose from, we've found it
  1119.        helpful in our own programs to display which printer options
  1120.        are available, and what users should do to invoke each.  See
  1121.        Demo.Bas for code that might give you a start here.
  1122.  
  1123.      * If you do display the labels and codes, you might want to offer
  1124.        users a printed description of each code.  14-byte fields con-
  1125.        strain what we can say.  So users might benefit from something
  1126.        that translates our terse abbreviations into something meaningful.
  1127.  
  1128.        Both Type.Inc and Printer.Dat include fuller descriptions of
  1129.        each code.
  1130.  
  1131.  
  1132.     Using the Printer Codes from Within Your Programs
  1133.     -------------------------------------------------
  1134.  
  1135.     BASIC programmers can use TYPE.INC to load printer codes from
  1136.     Printer.Cfg.  Or, use any 1024-byte variable to read them.  Or,
  1137.     read the 44-byte header, throw it away, then read a 980-byte
  1138.     record.  Or set up a 70-element array, then just read (or parse)
  1139.     each code into an element.
  1140.  
  1141.     Finally, just trim trailing spaces (Chr$(32)) from a code and
  1142.     send it to the printer.
  1143.  
  1144.      * Remember to first scan codes for our "placeholder" -- √.  If
  1145.        it exists, you MUST replace it.  NEVER send it to a printer.
  1146.        In a later section, we'll explain how to customize these.
  1147.  
  1148.      * Also, remember to leave Chr$(0)s intact -- in BASIC use
  1149.        RTRIM$, NOT Crescent's qpRTRIM or pdqRTRIM.
  1150.  
  1151.                                                                        
  1152.  
  1153.  
  1154.     Examples  (using BASIC code)
  1155.     --------
  1156.  
  1157.     These examples assume Type.Inc was used to load printer codes
  1158.     into a "type" or "structure" called "Printer."  These examples
  1159.     use BASIC's "lprint" or "line print" function.
  1160.  
  1161.  
  1162.      * To INITIALIZE (reset) the printer to power-on mode:
  1163.  
  1164.           lprint rtrim$(Printer.Initialize);
  1165.  
  1166.  
  1167.      * To UNDERLINE text:
  1168.  
  1169.           lprint rtrim$(Printer.UnderlineON); Text$;
  1170.           lprint rtrim$(Printer.UnderlineOFF)
  1171.  
  1172.  
  1173.      * To print text in BOLD:
  1174.  
  1175.           lprint rtrim$(Printer.BoldOn); Text$; rtrim$(Printer.BoldOff)
  1176.  
  1177.  
  1178.      * To turn on 8 lines-per-inch (8 LPI):
  1179.  
  1180.           lprint rtrim$(Printer.LinesPerInch8);
  1181.  
  1182.  
  1183.     That's it!  For the most part, it's that simple.  And you needn't
  1184.     care which printer is installed, or whether users install a dif-
  1185.     ferent printer.
  1186.  
  1187.                                                                       
  1188.  
  1189.  
  1190.     =================================================================
  1191.  
  1192.                     Section III:   Using Printer.Exe
  1193.  
  1194.            Expanding The Printer Database; Creating PRINTER.DAT
  1195.  
  1196.     =================================================================
  1197.  
  1198.     Printer.Exe can create a fixed-length, random-record database.
  1199.  
  1200.      * A new file, PRINTER.DAT, will be created, requiring about
  1201.        750,000 bytes of disk space.  If Printer.Dat already exists,
  1202.        we'll tell you so and quit.  One way this might happen is if the
  1203.        PDT structure file by the same name exists on the current
  1204.        drive/directory (it should be in PDT.DIR, not where you are).
  1205.  
  1206.        NOTE:  Shareware versions write out only the first 45 records
  1207.        or so.  So disk space requirements are much less.
  1208.  
  1209.  
  1210.      * Once expanded, you can easily view and edit Printer.Dat, add
  1211.        records (printers), change or add printer codes, etc.  PDT is
  1212.        an excellent tool for this.
  1213.  
  1214.  
  1215.      * You can also read Printer.Dat from your programs.  But doing
  1216.        so may needlessly consume lots of disk space.  Using the ".Cfg"
  1217.        file from your programs is much more space-efficient.
  1218.  
  1219.  
  1220.      * Please note that once expanded, there's no current way to
  1221.        re-compress the database and re-create Printer.Exe.
  1222.  
  1223.        - If you add printers, or add codes for certain printers, or
  1224.          change codes, feel free to send us the changes (in 1024-byte
  1225.          records, in the original field-format).  PDT's Block Mark and
  1226.          Block Export options make this an easy task.
  1227.  
  1228.        - We'll be happy to consider re-creating Printer.Exe for you.
  1229.  
  1230.  
  1231.     To Expand the Database
  1232.     ----------------------
  1233.  
  1234.     Verify there's about 1 million bytes of free disk space.  Then type:
  1235.  
  1236.     In Registered versions:    printer  SERIAL # (where Serial # is the
  1237.                                serial number of your registered version).
  1238.  
  1239.     In Shareware versions:     printer  rws-54321  (that's a hyphen).
  1240.  
  1241.  
  1242.     We WON'T verify that sufficient disk space is available -- YOU must.
  1243.     As the database expands, we'll show which record number we're on.
  1244.     Record numbers should fly by.  If they slow to a crawl or stop,
  1245.     we probably ran out of disk space.  Press Escape, then check the
  1246.     disk space.  If it's 0, clear some space, then repeat the process.
  1247.                                                                        
  1248.  
  1249.  
  1250.     =================================================================
  1251.  
  1252.               Section IV:   Using Codes with "Placeholders"
  1253.  
  1254.     =================================================================
  1255.  
  1256.     While we've tried to design most of this system to be almost
  1257.     painless, using some codes requires some work.  Fortunately,
  1258.     these codes can also yield significant powers and benefits.
  1259.  
  1260.     We mentioned earlier that some printer codes contain "√" (ASCII
  1261.     character 251) -- a placeholder for value(s) you must supply.
  1262.     "√" should NEVER be sent to the printer.  Instead, you should
  1263.     replace "√" with a string value appropriate for your situation.
  1264.  
  1265.     Here are general guidelines for replacing placeholders and using
  1266.     these codes.  To see some of these in action (and masterfully),
  1267.     capture-to-disk a document printed by WordPerfect or Microsoft
  1268.     Word.  Then examine the file in PDT.
  1269.  
  1270.     To use some of these, you need formulas or need to know which
  1271.     units-of-measurement each printer uses.  We've included guidelines
  1272.     for Epson printers and HP LasetJets.  Later we may offer guidelines
  1273.     for Toshiba, Okidata and others.
  1274.  
  1275.     Please note that, with some codes, it's not sufficient to know the
  1276.     printer is an Epson (or emulates one).  Epson CHANGED the meaning
  1277.     of certain codes (eg., Line Spacing) when they introduced the LQ
  1278.     (24-pin, Letter Quality) printers.  So the same printer code can
  1279.     yield different results if you're dealing with an Older 9-pin, a
  1280.     Newer 9-pin or a 24-pin LQ Epson.
  1281.  
  1282.  
  1283.     GENERAL GUIDELINES
  1284.     ==================
  1285.  
  1286.      * "<" means character 27 (Escape) as in "<A√."
  1287.  
  1288.      * Printer codes are strings.  When you replace our placeholder,
  1289.        especially if you send a number, you should do so by sending
  1290.        either:
  1291.  
  1292.         - Its string equivalent (eg., Str$(SomeNumber) in BASIC).
  1293.           LaserJets usually require this string version (eg., <(s9T).
  1294.  
  1295.         - Or a character (eg., Chr$(SomeNumber) in BASIC).  Epson
  1296.           printers usually accept this version (eg., <A + Chr$(19))
  1297.  
  1298.      * In most (but not all) cases if you send an unrecognized printer
  1299.        code, the printer simply ignores it.  So, for example, if you
  1300.        tell an old Epson FX printer to switch to the Orator-S font, it
  1301.        won't know what you mean and simply ignores your request.
  1302.  
  1303.        The main (only?) exceptions to this are the Line Spacing com-
  1304.        mands on Epson printers.  For example, "<3" + Chr$(30) means 6
  1305.        lines-per-inch on LQ printers, but 7.2 LPI on FX printers.
  1306.  
  1307.                                                                        
  1308.  
  1309.  
  1310.     Option                      Epson                LaserJet
  1311.     =======================     ==================   ===================
  1312.  
  1313.     Select Character Sets                           
  1314.     (USA, France, etc.)         <R√                  <(√√   (Symbol Set)
  1315.     --------------------------------------------------------------------
  1316.     Use with:                   Where √ = Chr$(#)    NOTE:  This selects
  1317.                                                      a Symbol Set, and is
  1318.     - Most Epson LQ printers.    0 (USA)             thus not truly equiv-
  1319.                                  1 (France)          alent to Epson logic.
  1320.     - Most newer 9-pin           2 (Germany)         See options below for
  1321.       printer (through #9).      3 (England)         why we placed this here.
  1322.                                  4 (Denmark)         These REQUIRE appro-
  1323.     - Most older 9-pins          5 (Sweden)          priate fonts.
  1324.       (through #6).  Not MX.     6 (Italy)
  1325.                                  7 (Spain)           Where √√ =
  1326.                                  8 (Japan)
  1327.                                  9 (Norway)           8U = Roman-8
  1328.                                 10 (Denmark 2)       10U = PC-8 (w/ line draw)
  1329.                                 11 (Spain 2)         11U = PC-8 DN
  1330.                                 13 (Korea)            8K = Kana-8
  1331.                                 64 (Legal)            8M = Math-8
  1332.                                                       0U = USASCII
  1333.                                                       0B = Line Draw
  1334.                                                       0E = Roman Extension
  1335.                                                       0D/1E/0F/0G/0I/0S/1S =
  1336.                                                            Denmark-Norway, UK,
  1337.                                                            France, Germany,
  1338.                                                            Italy, Sweden-
  1339.                                                            Finland and Spain,
  1340.                                                            respectivly.
  1341.                                                       1U = Legal
  1342.                                                       0N = ECMA-94
  1343.  
  1344.  
  1345.     Select Master Font          <k√                  <(s√T   (Type Face)
  1346.     --------------------------------------------------------------------
  1347.     Use with:                   Where √ = Chr$(#)    Where √ =
  1348.  
  1349.     - LQ printers (except        0 (Roman)           0 (Line printer)
  1350.       LQ-1500 and LQ-2000).      1 (Sans Serif)      1 (Pica)
  1351.       Options 2-8 may require    2 (Courier)         2 (Elite)
  1352.       an optional font module.   3 (Prestige)        3 (Courier)
  1353.                                  4 (Script)          4 (Helvetic)
  1354.     - Newer FXs, use only 0,     5 (OCR B)           5 (Times Roman)
  1355.       1 & 2, and only with:      6 (OCR-A)           6 (Gothic)
  1356.       DFX-500, FX-86/286,        7 (Orator)          7 (Script)
  1357.       FX-850/1050, FX-800/1000,  8 (Orator-S)        8 (Prestige)
  1358.       LX-800/810, T750, Apex-80.                     9 (Caslon)
  1359.                                                     10 (Orator)
  1360.     - NOT applicable with older Epsons.
  1361.  
  1362.  
  1363.  
  1364.                                                                        
  1365.  
  1366.  
  1367.     Option                      Epson                LaserJet
  1368.     =======================     ==================   ===================
  1369.                                                      
  1370.     Master Select               <!√                  Not applicable (n/a)
  1371.     --------------------------------------------------------------------
  1372.     Use with:                   Where √ = Chr$(#)
  1373.  
  1374.     - LQ printers.               0 (Pica)
  1375.                                  1 (Elite)
  1376.        *  NLQ mode required.     2 (Proportional) *
  1377.                                  4 (Condensed)
  1378.        ** Not SQ-2000            8 (Emphasized)
  1379.                                 16 (Double Strike)**
  1380.                                 32 (Double-Wide)
  1381.     - With newer FXs, many      64 (Italic)
  1382.       are available in Draft   128 (Underline)
  1383.       mode only (not NLQ),
  1384.       and Proportional, Italic
  1385.       and Underline may not be
  1386.       available this way.  Use
  1387.       other codes for this.
  1388.  
  1389.     - Many are NOT applicable with older 9-pin Epsons.
  1390.  
  1391.  
  1392.     Variable Line Spacing       <A√                   <&l√D
  1393.     --------------------------------------------------------------------
  1394.                                 Where √ = Chr$(#)     Where √ =
  1395.  
  1396.                                 LQ:  #/60 inch        1, 2, 3, 4, 6, 8,
  1397.                                 FX:  #/72 inch        12, 16, 24 or 48
  1398.                                                       lines-per-inch.
  1399.                                 Replace √ with a
  1400.                                 character.  For
  1401.                                 example, for 3/60"
  1402.                                 use "<A" + Chr$(3).
  1403.  
  1404.                                 NOTE:  This is 1/3 the
  1405.                                 resolution of <3√ below.
  1406.  
  1407.  
  1408.     Alternate Variable Line     <3√                   <&l√C
  1409.       Spacing
  1410.     --------------------------------------------------------------------
  1411.                                 Where √ = Chr$(#)     Where √ =
  1412.  
  1413.                                 LQ:  #/180 inch       The number of 1/48
  1414.                                 FX:  #/216 inch       inch increments per
  1415.                                                       line.  For example:
  1416.                                 For example, for
  1417.                                 4 lines/inch:         "<&l6C" = 6/48 = 1/8
  1418.                                                       or 8 lines/inch.
  1419.                                 LQ:  "<3" + Chr$(45)
  1420.                                 FX:  "<3" + Chr$(54)
  1421.  
  1422.                                 NOTE:  This is 3-times
  1423.                                 the resolution of <A√.
  1424.                                                                        
  1425.  
  1426.  
  1427.     Option                      Epson                LaserJet
  1428.     =======================     ==================   ===================
  1429.  
  1430.     Page Length: Inches         <C + Chr$(0) + √      n/a
  1431.     --------------------------------------------------------------------
  1432.                                 Where √ = Chr$(#)
  1433.  
  1434.                                 A character from
  1435.                                 Chr$(1) to Chr$(22)
  1436.                                 indicating 1 - 22 inches.
  1437.  
  1438.  
  1439.     Page Length: Lines          <C√                   <&l√P
  1440.     --------------------------------------------------------------------
  1441.                                 Where √ = Chr$(#)     Where √ =
  1442.  
  1443.                                 A character from      The number of lines
  1444.                                 Chr$(1) to Chr$(127)  on the page (using
  1445.                                 indicating 1 - 127    the currently-selected
  1446.                                 lines.                line spacing).
  1447.  
  1448.                                                       NOTE:  When Laser-
  1449.                                                       Jets receive this
  1450.                                                       code, they RESET
  1451.                                                       Top Margin, Text
  1452.                                                       Length, and Left/
  1453.                                                       Right Margins.  So
  1454.                                                       set Page Length 1st.
  1455.  
  1456.  
  1457.     Set Tab Stops               <D√√√√√√√√+Chr$(0)   n/a
  1458.     --------------------------------------------------------------------
  1459.                                 Where EACH √ =       Use <&a√C to jump
  1460.                                                      to any column --
  1461.                                 Chr$(1) to Chr$(?)   based on the pitch
  1462.                                                      of the "current" font.
  1463.                                 - "?" = 137 for 80-
  1464.                                   column printers.   NOTE:  See "Absolute
  1465.                                                      Move to a Horizontal
  1466.                                 - "?" = 233 for      Position" for a pitch-
  1467.                                   wide-carriage      independent way to
  1468.                                   printers.          move right/left.
  1469.  
  1470.                                 NOTE:  The values
  1471.                                 you use depend on
  1472.                                 the pitch of the
  1473.                                 current font.
  1474.                                  - Pica = 10 CPI
  1475.                                  - Elite = 12 CPI
  1476.                                  - Condensed = 15 CPI
  1477.  
  1478.                                 The ending Chr$(0)
  1479.                                 is REQUIRED!
  1480.  
  1481.                                 When a TAB (Chr$(9)) is
  1482.                                 issued, printing starts
  1483.                                 at the NEXT column -- not
  1484.                                 the one you specified!                 
  1485.  
  1486.  
  1487.  
  1488.     Option                      Epson                LaserJet
  1489.     =======================     ==================   ===================
  1490.  
  1491.     Set Top Margin              n/a                   <&l√E
  1492.     --------------------------------------------------------------------
  1493.                                                       Where √ =
  1494.  
  1495.                                                       1, 2, etc. for the
  1496.                                                       line number (using
  1497.                                                       the current line
  1498.                                                       spacing).
  1499.  
  1500.                                                       NOTE:  The top and
  1501.                                                       bottom 1/2 inch (about
  1502.                                                       2 lines) is an "un-
  1503.                                                       printable" area. Print-
  1504.                                                       ting here results in
  1505.                                                       lost data.  HP recom-
  1506.                                                       mends a minimum of 2.
  1507.  
  1508.  
  1509.     Set Bottom Margin           n/a                   n/a
  1510.     --------------------------------------------------------------------
  1511.                                                       NOTE: The bottom
  1512.     Note:  This is a curiosity.                       margin equals:
  1513.  
  1514.     It's NOT relevant on page-                              Page Length
  1515.     oriented laser printers.                          minus Top Margin
  1516.                                                       minus Text Length
  1517.     It IS used on some non-Epson
  1518.     dot-matrix printers.  But                         Skip Perforation
  1519.     often, you have to go down                        is useful to print
  1520.     there, then say "this is the                      beyond line 60!  I
  1521.     bottom."                                          recommend you ALWAYS
  1522.                                                       use Skip Perf., then
  1523.     We included it here for                           control how far down
  1524.     completeness, even though                         you go.  Since Lasers
  1525.     it's irrelevant for these                         enjoy spitting the
  1526.     groups of printers.                               page out when you hit
  1527.                                                       line #60 (while many
  1528.                                                       printers happily accept
  1529.                                                       64 lines), Skip Perf.
  1530.                                                       helps you tame this
  1531.                                                       prediliction.
  1532.  
  1533.  
  1534.  
  1535.     Set Left Margin             <l√                   <&a√L
  1536.     --------------------------------------------------------------------
  1537.                                 Where √ = Chr$(#),    Where √ = a column
  1538.                                 a column number.
  1539.  
  1540.                                 NOTE:  That's a       - The 1st column is
  1541.                                 lower case L, not       column #0.
  1542.                                 the number "1."
  1543.  
  1544.                                                                        
  1545.  
  1546.  
  1547.     Option                      Epson                LaserJet
  1548.     =======================     ==================   ===================
  1549.  
  1550.     Set Right Margin            <Q√                   <&a√M
  1551.     --------------------------------------------------------------------
  1552.                                 Where √ = Chr$(#),    Where √ = a column
  1553.                                 a column number.      number.
  1554.  
  1555.                                 Minimum and maximum   - The 1st column is
  1556.                                 values differ depend-   column #0.
  1557.                                 on both the pitch and
  1558.                                 the carriage width.   - Column positions
  1559.                                                         vary with the pitch
  1560.                                                         of the current font.
  1561.  
  1562.  
  1563.     ABSOLUTE Move to a          n/a                   <&a√V
  1564.       VERTICAL Location
  1565.     --------------------------------------------------------------------
  1566.                                                       Where √ = the new
  1567.     Example:  Move to row 5.                          vertical location in
  1568.                                                       1/720 inch increments.
  1569.  
  1570.                                                       Example:  "<&a600V"
  1571.                                                       jumps to line # 5
  1572.                                                       (600/720 = .83 or line
  1573.                                                       5 at 6 lines-per-inch).
  1574.  
  1575.     LaserJet Notes:  <&√R moves to a specific row -- but dependent on
  1576.                      the current line spacing.  <&a√V is invulnerable
  1577.                      to user changes in line spacing.
  1578.  
  1579.  
  1580.     RELATIVE Move to a          n/a                   <&a√√V
  1581.       VERTICAL Location
  1582.     --------------------------------------------------------------------
  1583.                                                       Use the same code(s) as
  1584.     Example:  Move UP 3 lines.                        above but with "+" or
  1585.                                                       "-" before √, to move
  1586.                                                       down or up, respectively.
  1587.  
  1588.  
  1589.     ABSOLUTE Move to a          <$√√                  <&a√H
  1590.       HORIZONTAL Location
  1591.     --------------------------------------------------------------------
  1592.                                 This begins           Where √ = the new
  1593.     Epson:  Newer LQ only.      printing from         horizontal location in
  1594.                                 the left margin       1/720 inch increments.
  1595.     Example:  Move to           in 1/60 inch
  1596.     column 14.                  increments.           Example:  "<&a1080H"
  1597.                                                       jumps to column # 14
  1598.                                 # of dots =           (1080/720 = 1.4 inches
  1599.                                 n1 + (n2 * 256).      or column 14 at 10
  1600.                                                       characters-per-inch).
  1601.  
  1602.     LaserJet Notes:  <&√C moves to a specific column -- but is dependent on
  1603.                      the pitch of the current font.  <&a√H is invulnerable
  1604.                      to font pitch.                                    
  1605.  
  1606.  
  1607.     Option                      Epson                LaserJet
  1608.     =======================     ==================   ===================
  1609.  
  1610.  
  1611.     RELATIVE Move to a          <\√√                  <&a√√H
  1612.       HORIZONTAL Location                             
  1613.     --------------------------------------------------------------------
  1614.  
  1615.     Epson:  New LQ only.        To determine the      Use the same code(s)
  1616.                                 2 numbers, first      as above but with "+"
  1617.                                 calculate the dis     or "-" before √, to
  1618.     Example:  Move 5 columns    placement in dots.    move right or left,
  1619.     right.                      - If moving left,     respectively.
  1620.                                   subtract this
  1621.                                   number from 65536.
  1622.  
  1623.  
  1624.                                 Send the resulting
  1625.                                 number using the
  1626.                                 formula:
  1627.  
  1628.                                 # of dots =
  1629.                                 n1 + (n2 * 256)
  1630.  
  1631.                                 A dot is 1/120 inch in
  1632.                                 Draft, and 1/180 inch
  1633.                                 in Letter Quality or
  1634.                                 Proportional modes.
  1635.  
  1636.  
  1637.     Set Inter-Character         <+ Chr$(32) + √       <&k√H
  1638.       Spacing
  1639.     --------------------------------------------------------------------
  1640.  
  1641.     Note:  Change distance      Where √ = Chr$(#)     Where √ = the
  1642.     between characters.         indicating the        number of 1/120
  1643.                                 number of dots to     inch increments
  1644.     Epson:  New LQ only.        move right after      between characters.
  1645.                                 each character.
  1646.                                                       Example:  <&k12H
  1647.                                 A dot is 1/120 inch   sets 10 characters
  1648.                                 in Draft, and 1/180   per inch (12/120 = 10).
  1649.                                 inch in Letter
  1650.                                 Quality or Propor-    With proportional fonts,
  1651.                                 tional modes.         only SPACE is affected.
  1652.  
  1653.  
  1654.                                                                        
  1655.  
  1656.  
  1657.     =================================================================
  1658.  
  1659.         Appendix  I:  The Record Structure of Printer Data Files
  1660.  
  1661.     =================================================================
  1662.  
  1663.  
  1664.     Record Length
  1665.     -------------
  1666.  
  1667.     Both Printer.Dat and Printer.Cfg consists of 1024-byte records.
  1668.     Type.Inc and Printer.Dat both describe the record/field layout.
  1669.  
  1670.  
  1671.     If you open PRINTER.DAT in PDT (Ctrl-O), PDT should automatically
  1672.     format your view of it into logical rows and columns.
  1673.  
  1674.      * This ONLY happens if the PDT structure file we included (also
  1675.        called Printer.Dat) exists in PDT's special directory: PDT.DIR.
  1676.  
  1677.      * If PDT does NOT automatically format your view, it couldn't find
  1678.        Printer.Dat in PDT.DIR.  We urge you to put it there, then run
  1679.        PDT again.  Or, you could run PDT, open the file, and press
  1680.        Ctrl-L and enter 1024 to tell PDT the record length.  This sets
  1681.        the record length, but WON'T give you field names, values, etc.
  1682.  
  1683.  
  1684.     Note:  If you open Printer.Cfg in PDT, PDT will NOT automatically
  1685.     format your view of it -- unless it finds a "structure" file in
  1686.     PDT.DIR called "Printer.Cfg."  You could:
  1687.  
  1688.      * Just copy the structure file we sent:  copy printer.dat *.cfg.
  1689.        We urge you to do this so that every time you open a ".Cfg" file,
  1690.        PDT will lay it out for you automatically.
  1691.  
  1692.      * Or, once you load the ".Cfg" file into PDT, then press F5 and
  1693.        load the structure file called "Printer.Dat."
  1694.  
  1695.  
  1696.     Record #    Description
  1697.     --------    -----------------------------------------------------
  1698.  
  1699.      1-5        Reserved.  These contain our copyright, notes on the
  1700.                 format of each record, labels for each field, and room
  1701.                 for expansion.
  1702.  
  1703.                 Note:  We always find need to add things to databases
  1704.                 once created.  So reserving room to expand into
  1705.                 minimizes the chances we'll have to render someone's
  1706.                 existing database obsolete!  Please leave these intact,
  1707.                 or at least plan for them to be included in future
  1708.                 versions -- that is, begin reading at record 6.
  1709.  
  1710.      6-###      One record for each printer, listed alphabetically.
  1711.  
  1712.                 Some printers may have 2 or more records if they offer
  1713.                 2 or more emulations.
  1714.                                                                        
  1715.  
  1716.  
  1717.     Field Structure
  1718.     ---------------
  1719.  
  1720.     "Type.Inc" contains two QuickBASIC TYPEs you can use to under-
  1721.     stand the codes and read them from within QB programs.  The PDT
  1722.     structure file, Printer.Dat, contains similar data.
  1723.  
  1724.     Most fields in both Printer.Dat or Printer.Cfg are 14 bytes.
  1725.     The exceptions are fields 1 and 2.  Field #1 is 1 byte; we use
  1726.     it while editing the database and it's reserved (like the "Deleted
  1727.     Flag" in dBase files).  Field #2 is 15 bytes and contains the name
  1728.     of the manufacturer of the printer (eg., Epson, Star, Xerox, etc.).
  1729.  
  1730.  
  1731.     The first 44 bytes of each printer record is a header identifying
  1732.     the printer.  Thus the first TYPE in Type.Inc is HEADER.  We use
  1733.     separate TYPEs for the header and the codes to give you flexibility
  1734.     and to minimize memory usage (use the header only when needed).
  1735.  
  1736.         # of
  1737.         Bytes     Contents
  1738.        -------    ------------------------------------------------
  1739.  
  1740.           1       Reserved (used in development)
  1741.  
  1742.          15       Manufacturer (eg., Epson)
  1743.  
  1744.          14       Model (eg., FX-286)
  1745.  
  1746.          14       Emulation mode (eg., printer emulates an Epson LQ)
  1747.  
  1748.  
  1749.     The remaining 980 bytes consist of 70 14-byte printer codes.  So
  1750.     the 2nd TYPE in Type.Inc is PRINTER.  Review it and you'll see:
  1751.  
  1752.  
  1753.         # of
  1754.         Bytes     Contents
  1755.        -------    ------------------------------------------------
  1756.  
  1757.          14       Initialize (reset) printer
  1758.           .       Set 10 Characters-per-inch (10 CPI)
  1759.           .       Set 12 CPI
  1760.           .       Set Condensed print On
  1761.           .       Turn Condensed print Off
  1762.           .       .
  1763.           .       .
  1764.           .       etc.
  1765.  
  1766.     Review Type.Inc or Printer.Dat for the order and descriptions of
  1767.     each code.  Labels are also included in the database.  And PDT will
  1768.     display column headings IF:  it finds its structure file (also
  1769.     called Printer.Dat), and you press Ctrl-D (Display Field Labels).
  1770.  
  1771.                                                                        
  1772.  
  1773.  
  1774.     =================================================================
  1775.  
  1776.             Appendix II:  Using PDT to View and Edit ANY File
  1777.  
  1778.     =================================================================
  1779.  
  1780.     PDT comes with both extensive on-line help, plus an on-disk manual.
  1781.     But here are the basics you'll need to take full advantage of PDT
  1782.     when viewing Printer.Cfg or Printer.Dat (and some other files).
  1783.  
  1784.     Installation
  1785.     ============
  1786.  
  1787.     1.  Install PDT in a directory on your path, or in it's own
  1788.         directory (then add PDT's path to your PATH statement).
  1789.  
  1790.     2.  BE SURE that PDT's special subdirectory (PDT.DIR) is created
  1791.         off the directory containing PDT.EXE.  PDT's "install" program
  1792.         will do this for you.  But if you didn't use Install, be sure
  1793.         to:  md pdt.dir.
  1794.  
  1795.     3.  Also BE SURE to copy the structure file "Printer.Dat" to
  1796.         PDT.DIR.  Install.Exe won't do this for you since it's not
  1797.         part of PDT.
  1798.  
  1799.         - Make a copy of this file, but with a ".Cfg" extension:
  1800.  
  1801.                    copy printer.dat *.cfg.
  1802.  
  1803.     Opening a File
  1804.     ==============
  1805.  
  1806.     1.  MOVE to the path where you've installed The Printer.
  1807.  
  1808.         - Run Printer.Exe and select a printer (try an Epson).
  1809.           BE SURE to press F2 so we save Printer.Cfg.
  1810.  
  1811.         - Also, if you like, run Printer.Exe and expand the
  1812.           database to it's fixed-length format.
  1813.  
  1814.     2.  Run PDT like this:      pdt printer.cfg   <enter>
  1815.  
  1816.                            or,  pdt printer.dat   <enter>
  1817.  
  1818.         - IF you followed step 3 above, either command should yield
  1819.           a display of logical rows and columns.
  1820.  
  1821.         - Fields will be displayed in alternating colors.  As you TAB
  1822.           from field to field, notice near the bottom of your screen:
  1823.  
  1824.           -- FIELD:  will change to show you which field you're in.
  1825.  
  1826.           -- VALUE:  will show the "value" of the field you're in.
  1827.              This is especially useful with packed binary numerics.
  1828.  
  1829.         - Press Ctrl-D.  PDT will display column labels atop the file
  1830.           window showing what's ahead of and what's behind your cursor.
  1831.                                                                        
  1832.  
  1833.  
  1834.     Managing Other Files
  1835.     ====================
  1836.  
  1837.     1.  Close the file (Ctrl-C), then open one of your own (Ctrl-O).
  1838.  
  1839.         If you have a dBase file, try it first.  If your dBase
  1840.         file does NOT have a ".DBF" extension, press Alt-O and
  1841.         select "Force dBase" from the Options menu.
  1842.  
  1843.     2.  Now for some fun!  Make a COPY of a fixed-length, random file
  1844.         with BINARY NUMERIC fields in it.  Now open the copy (Ctrl-O).
  1845.  
  1846.         - Press Ctrl-L and enter the Record Length.
  1847.  
  1848.         - Press Home, then press F2.  Press a letter indicating the
  1849.           Field Type:  <c>haracter, <i>nteger, <l>ong, etc.
  1850.  
  1851.           Press <Enter> and enter a label or description.
  1852.  
  1853.           Press <Enter> again, then move the cursor to the next field.
  1854.           Press F2 again, then repeat this process.
  1855.  
  1856.           Continue this until you have AT LEAST 1 numeric field defined.
  1857.  
  1858.           PRESS F4 and SAVE this structure -- with the SAME NAME as your
  1859.           data file.  PDT saves it to PDT.DIR so it won't overwrite data.
  1860.  
  1861.     3.  Now move your cursor to a numeric field you defined (TAB or
  1862.         Shift-Tab can now get you there quickly).
  1863.  
  1864.         -- Note "Value" at the bottom of the screen.  Now move up or
  1865.            down the column and watch "Value" change.
  1866.  
  1867.         -- Stop at some number and WRITE DOWN its value.  Now press
  1868.            Ctrl-E (Edit ON), then press F6.  Enter a new number and
  1869.            press <Enter>.
  1870.  
  1871.            If you followed these steps, you should have just edited
  1872.            a packed binary field in easy-to-understand ASCII.  When
  1873.            you pressed <Enter> PDT saved the binary version to disk.
  1874.  
  1875.         -- Now press F6 again and enter the original number you wrote down.
  1876.  
  1877.     4.  Close the file (Ctrl-C).  Now immediately re-open it.  IF, in
  1878.         step 3 above, you pressed F4 to save the structure, PDT will
  1879.         open your file with everything mapped out for you!
  1880.  
  1881.  
  1882.     IF YOU FOLLOWED THESE SIMPLE STEPS, you've just seen two of PDT's
  1883.     most useful functions.
  1884.  
  1885.      * PDT can (with your help) turn almost any fixed-length file into
  1886.        logical, easily-edited rows and columns.  You can TAB from field
  1887.        to field to view or edit fields.  And you can easily determine or
  1888.        edit field values -- even packed binary fields.
  1889.  
  1890.      * PDT can "automate" this, provided you save structure files.
  1891.                                                                        
  1892.  
  1893.  
  1894.     Advanced Options
  1895.     ================
  1896.  
  1897.     And if you're concerned that if you ADD printer codes to YOUR
  1898.     database, AND we send you an update, that you won't be able to
  1899.     merge your stuff with ours:
  1900.  
  1901.  
  1902.      * BE SURE to try Column Block Mark (Ctrl-M) then Block Copy (Ctrl-W).
  1903.  
  1904.        You can EASILY open your customized file in one window, then open
  1905.        an update we send you in another window, then simply paste an
  1906.        entire column (or 2, 3, or ? columns) of codes from one file and
  1907.        into the column(s) of another file!
  1908.  
  1909.  
  1910.     Also try:
  1911.  
  1912.      * Block Mark and Block Export.
  1913.  
  1914.  
  1915.      * Delete a record:  With Edit on, press Ctrl-B to mark a record,
  1916.        then press <Delete>.
  1917.  
  1918.  
  1919.      * Or try record insert:  With Edit on, press Home then Insert.
  1920.  
  1921.  
  1922.      * Finally, open Sample_2.Dat and check out the EBCDIC options.
  1923.  
  1924.  
  1925.     Just to emphasize what's probably obvious by now, PDT does NO
  1926.     buffering.  What you change is immediately written to disk.
  1927.  
  1928.      * That's the main reason it can help you edit ANY SIZE file --
  1929.        up to 2 gigs.
  1930.  
  1931.      * That's also why we urge you to experiment on a COPIES of files.
  1932.  
  1933.      * And that's why Edit mode is OFF be default.  You must turn Edit
  1934.        ON before you can change anything.
  1935.  
  1936.                                                                        
  1937.  
  1938.          ==============================================================
  1939.  
  1940.                 APPENDIX  III:  Other Programs by Pro~Formance
  1941.  
  1942.          ==============================================================
  1943.  
  1944.                  Here's a summary of many of our other programs.
  1945.  
  1946.          ==============================================================
  1947.          Professional Scribe (Pro~Scribe)              PS Express (PSE)
  1948.          ==============================================================
  1949.  
  1950.          Pro~Scribe and PSE help you improve anything you write (or help
  1951.          you improve the writing of others -- your staff, students, etc.)
  1952.  
  1953.          Pro~Scribe is used around the world in companies like IBM,
  1954.          Hewlett Packard, AT&T, Lockheed, Citicorp and Bank of America to
  1955.          help improve memos, letters, manuals, documentation, contracts,
  1956.          promotional material, etc.  Here's how Pro~Scribe and PSE help:
  1957.  
  1958.           * They examine your writing for many types of writing mistakes.
  1959.  
  1960.           * You can look at overall results for an entire letter,
  1961.             report, etc.  Or, if you like, they'll look at your
  1962.             writing line-by-line.
  1963.  
  1964.           * They show suspect problems, and offer suggestions.
  1965.  
  1966.           * Results are shown numerically, and with colorful graphs.
  1967.  
  1968.           * They come with two manuals (plus a Quick Reference Guide)
  1969.             - One covers basics: To install/run PS, and basic guidelines.
  1970.             - "Effective, High-Impact Writing" has more writing tips.
  1971.  
  1972.           * They're colorful, fast, fun, and a terrific value:
  1973.             $39 for both!
  1974.  
  1975.          How are Pro~Scribe and PSE different?   First, PS Express is a
  1976.          RAM-resident program.  That means it's always ready to help
  1977.          when you need help most--while you're actually writing.  Run
  1978.          PSE, then run your word processor and start writing.  Need
  1979.          help? Just press a key.
  1980.           * When PSE pops up, just mark the text you want PSE to examine.
  1981.             A window pops up instantly with feedback on your writing.
  1982.           * PSE is like having an English teacher looking over your
  1983.             shoulder, gently coaching you as you write.
  1984.  
  1985.          Pro~Scribe gives you everything PSE does, and much, much more.
  1986.          It reads files saved by your word processor, or you can type
  1987.          text directly into PS.  Like PSE, Pro~Scribe shows how complex
  1988.          your writing, words and sentences are.  It also offers you:
  1989.  
  1990.           * Feedback on "Word Wasters"  (5 categories of writing errors).
  1991.           * Three RGL (Running Grade Level) options (line-by-line feedback).
  1992.           * An option to flag complex words and Word Wasters in each line.
  1993.           * A Personal Interest score showing if you write as you speak.
  1994.           * Options to: Customize the program, send results to your printer.
  1995.                                                                       
  1996.  
  1997.  
  1998.          ==============================================================
  1999.          PDT                                 The Pro~Formance Data Tool
  2000.          ==============================================================
  2001.  
  2002.          Very simply, PDT is the finest data file editor available!
  2003.          If you ever have a need to edit database, binary or EBCDIC
  2004.          files, you'll find that PDT is an indispensable tool.
  2005.  
  2006.           * You can view and edit ANY type of file:  dBase files, other
  2007.             types of data files, executable files (eg., .Exe or .Com
  2008.             files), EBCDIC files, ASCII files, font files -- any file.
  2009.  
  2010.  
  2011.           * You can view and edit ANY SIZE file -- up to two gigabytes!
  2012.             Jump from the top to the bottom of any size file instantly.
  2013.  
  2014.             You can open up to 4 files at once.  View and compare
  2015.             different files.  Or work in different areas of the same
  2016.             file.  Since each file can be up to two gigabytes in size,
  2017.             you can work with up to 8 gigabytes of data at once!
  2018.  
  2019.  
  2020.           * You can manage database files like you've never been able to
  2021.             before.  PDT offers unique features to help you manage dBase
  2022.             or ANY fixed-length record file (data or font files, etc.).
  2023.  
  2024.             - PDT detects dBase ".DBF" files, formatting your "view" of
  2025.               them so fields are automatically laid out for you.
  2026.  
  2027.             - With other fixed-length data files (like those created by
  2028.               programs written in C, Pascal, BASIC, COBOL, etc.), PDT
  2029.               lets you easily and quickly define their "structure."
  2030.  
  2031.               Once you define a file's structure, which is easy to do,
  2032.               PDT formats your "view" of these files in logical rows and
  2033.               columns and offers other features as well.
  2034.  
  2035.             - Once PDT knows the structure of a file, you'll be able to:
  2036.               -- Easily view and edit the file, tabbing quickly from
  2037.                  field to field.  You can even press a key to edit
  2038.                  numeric fields stored in "packed binary" form.
  2039.  
  2040.               -- Mark blocks (either columns or records) and then:
  2041.                  Export them, Copy them, Erase or Fill them, etc.
  2042.  
  2043.               -- Expand or Shrink the width of fields.  And, if you
  2044.                  like, PDT will automatically update the dBase header
  2045.                  and its own "structure" files to reflect the change.
  2046.  
  2047.                                                     continued . . .  
  2048.  
  2049.  
  2050.          PDT (continued)
  2051.  
  2052.  
  2053.           * PDT even manages EBCDIC files -- like those found on, or
  2054.             downloaded from, large IBM computers.
  2055.  
  2056.            - PDT's dynamic EBCDIC-to-ASCII translation lets you view
  2057.              AND edit EBCDIC files in easy-to-understand ASCII mode.
  2058.              Changes you make to the file are saved to disk in EBCDIC.
  2059.  
  2060.            - PDT will even translate EBCDIC files to ASCII, or vice versa.
  2061.  
  2062.  
  2063.           * PDT can also help you:
  2064.  
  2065.             - Repair files -- regardless of their type or size.
  2066.  
  2067.             - Determine a file's structure (record or field length, etc.).
  2068.  
  2069.             - Edit executable files to customize their messages or options.
  2070.  
  2071.  
  2072.          * Finally, PDT is very logical and easy-to-use.  It offers
  2073.            about 45 different options you may use to edit and manage
  2074.            files.  And to make these easy to use, PDT offers pull-down
  2075.            menus, mouse support, fast keyboard hotkeys and extensive
  2076.            on-line help (which you can customize).
  2077.  
  2078.  
  2079.                                                                        
  2080.  
  2081.          ==============================================================
  2082.          Multi-Print                The ultimate text printing utility!
  2083.          ==============================================================
  2084.  
  2085.          Multi-Print (MP) prints ASCII text files (like this manual) on
  2086.          HP LaserJets -OR- Epson -OR- Toshiba printers (or compatibles).
  2087.  
  2088.           * Print 1, 2 or 4 PAGES of text on each SHEET of paper.  Print
  2089.             in portrait mode on BOTH sides of the paper on ANY printer,
  2090.             Or print sideways on LaserJets, Epson or Toshiba printers.
  2091.             - Choose "Booklet" mode to print books.  Print the "front"
  2092.               side, then the "back."  Then just fold it into a booklet
  2093.               and staple!
  2094.  
  2095.             - Choose "Left-to-Right" to print pages side-by-side, first
  2096.               on the left side of the page, then on the right.
  2097.  
  2098.             - Choose "1 Column" per sheet to print up to 250 characters
  2099.               per line (this is great for printing spreadsheets).
  2100.  
  2101.             - And with the last 2 options, you can choose to print 2-sided
  2102.               or 1-sided.  Then use them as-is, or slip them into a 3-ring
  2103.               binder.  (Booklets are always printed 2-sided).
  2104.  
  2105.           * Four fonts are included.
  2106.             - Our 9-point Times Roman font is a better-looking substi-
  2107.               tute for the LaserJet's "Line Printer" font (though you
  2108.               can use the Line Printer font if you wish).  With our 6-
  2109.               point Roman font, print up to 250 characters/line and 80
  2110.               lines/page (eg., spreadsheets).
  2111.  
  2112.             - Other fonts let MP print "sideways" on Epson and Toshiba
  2113.               printers.
  2114.  
  2115.           * The four fonts contain almost all ASCII characters.  Print:
  2116.             - Lines, boxes, shading, Big! Fonts (tm).
  2117.  
  2118.             - French, German, Spanish and other language characters.
  2119.  
  2120.             - "Control codes" (with ASCII values below 32) which are
  2121.                useful when you want to add arrows, "bullets," "check
  2122.                boxes" and other symbols to your text.
  2123.  
  2124.             - NOTE: Original LaserJets and LaserJet + can't print the last 2.
  2125.  
  2126.           * MP offers many printing options:
  2127.             - Print TITLES:  page numbers, the date, and the name of the
  2128.               file you're printing (or a "custom title") - in any com-
  2129.               bination. Print titles at the TOP or BOTTOM of each page
  2130.               in several "styles."
  2131.  
  2132.             - Print "both" sides, or just the "front" or "back" side.
  2133.  
  2134.             - Control Top, Left and Right Margins.  "Wrap" long lines of
  2135.               text (LaserJets only).  Print to LPT1, 2 or 3 or "to a
  2136.               file."  Etc.
  2137.  
  2138.           * MP is menu-driven; choose options using a mouse or the keyboard.
  2139.                                                                        
  2140.  
  2141.  
  2142.          ==============================================================
  2143.          inform-Z (also see Mail Call below)  Professional Forms Design
  2144.          ==============================================================
  2145.  
  2146.          inform-Z is a complete form system.  Built-in features include:
  2147.          easy form design, math, "auto-edit," high quality printing, etc.
  2148.  
  2149.          Design, edit and print forms with inform-Z.
  2150.  
  2151.           * Draw lines or boxes, or add shading, in several styles.
  2152.  
  2153.           * Enter text, auto-centered inside boxes if you like.
  2154.  
  2155.           * Automatically date, sequence number and time-stamp forms.
  2156.  
  2157.           * Add "formulas" for spreadsheet convenience, speed & accuracy.
  2158.  
  2159.           * Quick, easy block options:  Copy, Move, Erase, Shading.
  2160.  
  2161.           * Vary fonts, type styles, line spacing.
  2162.  
  2163.           * inform-Z is very easy to use.  And it's "lesson forms" cut
  2164.             the learning time dramatically.
  2165.  
  2166.  
  2167.          Then use inform-Z or Mail Call to fill out forms.
  2168.  
  2169.           * "Auto-Edit" fields lets you quickly skip through a form,
  2170.             editing just fields you "marked."  On order forms, for
  2171.             example:  Quantity, Description, Price per Unit.  Math
  2172.             options will do the math for you!
  2173.  
  2174.           * Let Mail Call fill in other information for you -- pulling
  2175.             names, addresses, etc. from your database, putting them
  2176.             where you want them.
  2177.  
  2178.          Produce high-quality, professional looking forms in minutes
  2179.          with Epson printers or HP LaserJets (+/500/Series II or later).
  2180.          And you DON'T need expensive font cartridges or soft fonts for
  2181.          lines, boxes, shading, etc.  We use built-in features for
  2182.          these.  "But, I don't have a LaserJet or an Epson" you say.
  2183.          Not to worry. inform-Z has two other printer options so it
  2184.          works with any printer.
  2185.  
  2186.          Together, inform-Z and Mail Call can help you manage almost
  2187.          every piece of paper in your office.
  2188.  
  2189.            Forms:       Invoices, Purchase Orders, Personnel Forms, Work
  2190.                         Orders, Work Schedules, Travel or Expense Reports,
  2191.                         Accounting Forms, Application Blanks, Org. Charts
  2192.  
  2193.            As Well As:  Letters, Memos, Envelopes, Mailing Labels,
  2194.                         Personalized Documents (ie., form letters),
  2195.                         Reports, Client or Employee lists, etc.
  2196.  
  2197.                                                                        
  2198.  
  2199.          ==============================================================
  2200.          Mail Call and MC Express (MCE)           Our mailing assistant
  2201.          ==============================================================
  2202.  
  2203.          Mail Call (MC) is a full featured mailing assistant.  Add names
  2204.          to a database, then Browse, Search, Print, Sort, etc.
  2205.  
  2206.           * Print envelopes in several sizes.
  2207.  
  2208.           * Print mailing labels (several sizes plus a "roll-your-own-
  2209.             size" option) 1 to 99 copies of each label, 1 to 3 columns
  2210.             across.
  2211.  
  2212.           * Print personalized documents (or form letters).
  2213.  
  2214.           * Print forms -- with "auto-edit," date, sequence number and
  2215.             math features!
  2216.  
  2217.           * Print reports, phone books, appointment schedules, etc.
  2218.  
  2219.          Mail Call offers UNlimited capacity -- use as many database
  2220.          files as you want.  And its "Mail Merge" option lets you
  2221.          Import or Export names to files used by word processors or
  2222.          other database programs.
  2223.  
  2224.          MC Express, a "RAM-resident" program, that lets you:  1) print
  2225.          envelopes while INSIDE your word processor; and, 2) lets you
  2226.          "write out" names & addresses to a file you can later "import"
  2227.          into MC (no re- typing).  MCE, optional, works with ALL
  2228.          versions of the HP LaserJet.
  2229.  
  2230.                                                                        
  2231.  
  2232.          ==============================================================
  2233.          P~F Presents  (PFP)              A DESKTOP PRESENTATION System
  2234.          ==============================================================
  2235.  
  2236.          P~F Presents comes with several programs to help you create,
  2237.          manage and display presentations.  The two main programs are
  2238.          P-Screen and PFP.
  2239.  
  2240.          With P-Screen you:       (See below for more on P-Screen)
  2241.          ------------------
  2242.  
  2243.           * Design screens (or "slides").
  2244.  
  2245.           * Save screens in libraries (or print them, or save them to
  2246.             ASCII files, or executable ".COM" files.)
  2247.  
  2248.           * NOTE: We offer TWO "screen-capture" programs to help you
  2249.             capture screens from existing applications.  One captures
  2250.             text screens.  The other captures ANY type of screen!
  2251.  
  2252.  
  2253.          With PFP you:
  2254.          -------------
  2255.  
  2256.           * Create presentation agendas ("slide shows") which can include:
  2257.  
  2258.             - Menus which "branch" to various parts of your presentation,
  2259.               depending on the option your viewer selects.  For example:
  2260.  
  2261.               -- Which product do you want information on?
  2262.               -- Which topic (in a tutorial) do you want to review?
  2263.  
  2264.             - Timed slides (PFP pauses, then automatically shows the next)
  2265.  
  2266.             - Special effects:  animation, sound, loops, exploding windows
  2267.  
  2268.           * Display your presentations, or let others do it by them-
  2269.             selves. A "use monochrome" option lets you display presen-
  2270.             tations on virtually any monitor.
  2271.  
  2272.          The Possibilities are Endless:
  2273.          ------------------------------
  2274.  
  2275.           * Sales presentations          * Management/Staff briefings
  2276.           * Training programs            * Tutorials or Demos
  2277.           * Meetings                     * Highlight product information
  2278.           * Investment opportunities     * Advertising on disk (SoftAds)
  2279.           * Customer information         * Tourist guides
  2280.           * Restaurant guides            * Directories (Names, phone #s)
  2281.  
  2282.                             And on and on and . . .
  2283.  
  2284.  
  2285.                                                                        
  2286.  
  2287.  
  2288.          ==============================================================
  2289.          P-Screen & P-Screen Professional     QuickBASIC screen support
  2290.          ==============================================================
  2291.  
  2292.          P-Screen is a screen: "design," "library/database" and
  2293.          "display" system all in one.  Use it to design screens for
  2294.          programs you write, or for program demos, prototyping, word
  2295.          processing, batch files, etc.
  2296.  
  2297.          * Draw/Join lines or boxes, in several styles
  2298.          * Shade or Paint entire screens or selected areas
  2299.          * Enter text, auto-centered inside lines or boxes if you like
  2300.          * Quick, easy block options:  Copy, Move, Erase, Shade, Paint,
  2301.            UnDo.
  2302.  
  2303.          Save/Load/Libraries
  2304.  
  2305.          * Save screens to or Load screens from ASCII files or Libraries.
  2306.            You can also save executable "Com" screens -- colors and all!
  2307.            - We include Capture to "grab" screens from other applications.
  2308.  
  2309.          * Libraries give you the convenience of 1 file to store up to 50
  2310.            screens -- in color, complete with names and descriptions.
  2311.  
  2312.          Using screen libraries in your programs, demos, etc.
  2313.  
  2314.          * We supply routines to display your screens from QuickBASIC
  2315.            programs (QB 3-4.x).
  2316.  
  2317.          * It's easy to write programs to access screen libraries.
  2318.            - You can load and display 1 screen at a time.
  2319.            - Or load 2 or more screens into arrays, then pop them up
  2320.              instantly.
  2321.  
  2322.          P-Screen Professional even writes your QB programs for you!!
  2323.          And it comes with several other subprograms you can use in any
  2324.          program.   Call for **significant** details.
  2325.  
  2326.                                                                        
  2327.  
  2328.  
  2329.          ==============================================================
  2330.          The Survey Catalyst      (A commercial program, not Shareware)
  2331.          ==============================================================
  2332.  
  2333.          The Survey Catalyst (TSC) is for anyone who works with attitude
  2334.          or opinion surveys.  It helps you create surveys in minutes or
  2335.          hours -- not days!
  2336.  
  2337.           * TSC includes a database of thousands of survey items--like
  2338.             items used in most Fortune 1000 companies' employee surveys.
  2339.  
  2340.             - You can review items, edit them or add new ones.
  2341.  
  2342.             - OR, when you see an item you want to add to a survey, just
  2343.               press a key and add it--fast and simple.
  2344.  
  2345.           * TSC also comes with dozens of response scales.  When you print
  2346.             surveys, TSC prints the right response scale--automatically.
  2347.  
  2348.           * And speaking of printing, TSC's many options let you create
  2349.             "camera-ready" copy--as you want it, fast!
  2350.  
  2351.             - Group items by Category, by Response Scale, or Randomize them.
  2352.  
  2353.             - Print response scales Above or Beside items (or not at all).
  2354.  
  2355.             - Print key punch instructions (optional)
  2356.  
  2357.             - Print a title--at the top or bottom of each page.
  2358.  
  2359.             - Or, print your survey "to a file"--to dress it up later.
  2360.  
  2361.          ==============================================================
  2362.          Pro~Stamp                             Stamp Collection Manager
  2363.          ==============================================================
  2364.  
  2365.          Pro~Stamp is our full-featured stamp collection manager.
  2366.  
  2367.           * It's very easy to use:  pull-down menus, extensive on-line
  2368.             help; Calculations done for you, select "Type" & "Condition"
  2369.             from menus, and more.
  2370.  
  2371.           * Your worksheets are set up like most popular collectors'
  2372.             manuals (eg., Scott).
  2373.  
  2374.           * Track small to huge stamp collections, with ease and convenience.
  2375.  
  2376.           * Multiple file options add flexibility (subsets of collections)
  2377.  
  2378.           * Automatic calculations (Values of each stamp, Increase in
  2379.             value) give you spreadsheet convenience.
  2380.  
  2381.           * Sort:  On any of several fields.
  2382.  
  2383.           * Print:  Entire worksheets or a range you specify.
  2384.  
  2385.           * It's customizable:  Edit menu items or printer codes your way.
  2386.                                                                          
  2387.  
  2388.          ==============================================================
  2389.          Ram-Man                              RAM-resident file browser
  2390.          ==============================================================
  2391.          Ram-Man is a RAM-resident (TSR) program to turn ANY text file
  2392.          into a pop-up quick-reference guide (or manual).  For example,
  2393.          keep THIS MANUAL at your fingertips while learning inform-Z!
  2394.  
  2395.           * Pop up your text file while you're working in virtually any
  2396.             text-based (not graphics) program (including inform-Z).
  2397.           * BROWSE through it.
  2398.           * SEARCH, looking for a topic or phrase you're interested in.
  2399.           * LOOK UP words, which we'll read directly from your screen!
  2400.  
  2401.          We supply the RAM-resident "engine," you supply the text.  Ram-
  2402.          Man preserves DOS memory by keeping ONLY its engine in memory.
  2403.          It displays your text from disk (hard or RAM disk recommended).
  2404.  
  2405.          You can change which file you're viewing without unloading
  2406.          Ram-Man.  That means you load Ram-Man once, then change ref-
  2407.          erence guides as your needs or the programs you use change.
  2408.                                            
  2409.          Now, regardless of which text-based program you're using (or
  2410.          even at the DOS prompt), you can have on-line, pop-up help
  2411.          available -- at any time, at the press of a key.
  2412.  
  2413.          Examples:       
  2414.           * The complete, on-disk manual for a program you're using.
  2415.           * A series of help screens or "Quick Reference Guides"
  2416.             (eg., tips on using DOS, tips on using a program).
  2417.             - You can display standard DOS text files, like those
  2418.               you create using an editor or word processor.
  2419.             - Or you can display special "screens" you create with
  2420.               programs like our P-Screen Screen Designer.
  2421.           * Appointment Calendars, To Do Lists. . . . etc.
  2422.  
  2423.          Other features:   (<R> = REGISTERED versions.)
  2424.  
  2425.           * BROWSE through files -- line by line or page by page.  And
  2426.             you can jump to the top or bottom of small -or- huge text
  2427.             files in 1/2 second or less.
  2428.  
  2429.           * SEARCH for topics relevant to your needs.
  2430.  
  2431.           * <R> "LOOK UP" reads a word directly off your screen THEN
  2432.             searches for it!  BE SURE to read the section on Look Up for
  2433.             uses (eg., Quick reference, spelling, thesaurus, quotations).
  2434.  
  2435.           * UNLOAD Ram-Man and reclaim the memory it uses.
  2436.  
  2437.           * <R>  RUN-TIME OPTIONS let you choose:
  2438.             - The "hotkey" you want to use to call Ram-Man up.
  2439.             - The size of the screen you want to use -- to let you
  2440.               switch between 25, 43 or 50 row screens at will.
  2441.             - The colors we use to display text.
  2442.  
  2443.               These options help ensure that Ram-Man's hotkey, colors
  2444.               and screen modes never conflict with the programs you use.
  2445.                                                                        
  2446.  
  2447.          ==============================================================
  2448.          SPARKLE & MENU MAGIC     Add some sparkle to your batch files.
  2449.          ==============================================================
  2450.  
  2451.          Sparkle is an AMAZING utility to enhance batch files, use from
  2452.          DOS, or use through other programs (via "shell").  And Sparkle
  2453.          now includes Menu Magic which lets you quickly create scrolling
  2454.          bar menus (see Menus below) and writes your batch files for you!
  2455.  
  2456.          One small (9k) program offers these many features:
  2457.  
  2458.           * MENUS      Sparkle offers 3 menu options.  Turn ANY screen
  2459.                        into a menu.  Or turn ANY text screen into a
  2460.                        Vertical or Horizontal"scrolling bar" menu.
  2461.  
  2462.           * SOUND      Over 35 sound effects, ranging from simple to
  2463.                        the William Tell Overture!
  2464.  
  2465.           * WINDOWS    Create windows (boxes) on screen in over 250
  2466.                        styles, with/without shadows, and in any color.
  2467.  
  2468.           * QuikPRINT  Display text anywhere on the screen in any color.
  2469.  
  2470.           * ASK        Ask the user to press a key -- to get a menu
  2471.                        choice or to simply pause.
  2472.                        - You can display any message you like in any color.
  2473.                        - You can specify which keys are "valid."  For
  2474.                          example, suppose your menu had 3 choices and
  2475.                          you ask someone to press 1, 2 or 3 to choose
  2476.                          one of them.  Just tell Sparkle that "123" are
  2477.                          your "valid keys."  Sparkle will wait until one
  2478.                          of these keys (or Escape) is pressed -- then
  2479.                          tell you which one was pressed.
  2480.  
  2481.           * PAUSE      You can pause for brief moments (1/3 second) or
  2482.                        for several minutes.  And Sparkle even gives you
  2483.                        the option to let your users "press a key" to
  2484.                        interrupt a pause and move on.
  2485.  
  2486.           * MONITOR    Determine what type of monitor is active.
  2487.  
  2488.                                                                        
  2489.  
  2490.          ==============================================================
  2491.          VIDLIB               A commercial-quality Video Tape Librarian
  2492.          ==============================================================
  2493.  
  2494.          VIDLIB has every feature that every other video tape program
  2495.          offers.  And the author guarantees to add any feature another
  2496.          program has that VIDLIB doesn't.  ANY feature ... GUARANTEED!
  2497.  
  2498.          VIDLIB stores 27 different pieces of information about each
  2499.          tape in your collection.
  2500.  
  2501.            - Tape number, recording's title, Category (adventure,
  2502.              romance, sci-fi, etc.), Rating (G, PG, R, etc.), origin
  2503.              (purchased, television, home recording, HBO, etc), stars
  2504.              appearing, director, studio, color or B&W, cost, date re-
  2505.              corded, recording speed, recording length, footage start
  2506.              and end, what language is spoken, subtitles?, cabinet
  2507.              and/or shelf where tape is stored, date the tape was
  2508.              loaned, who borrowed it.
  2509.  
  2510.            - No field is required!  Use or ignore any information field
  2511.              you like.  Use what you want; ignore what you don't.
  2512.  
  2513.            - Use 2 word processor-like windows to describe each record-
  2514.              ing on a tape and describe its honors, awards or nominations.
  2515.  
  2516.            - Depending on YOUR tastes, use the unique 5 star rating
  2517.              system to Rate each individual recording.
  2518.  
  2519.            - Many fields can be redefined by the user.
  2520.  
  2521.          VIDLIB handles an unlimited number of tapes with an unlimited
  2522.          number of recordings per tape.
  2523.  
  2524.          VIDLIB offers easy-to-use, yet surprisingly powerful printout
  2525.          support.
  2526.  
  2527.            - Print 3 different Avery labels available from your local
  2528.              office supply store:  labels for the tape spine, tape face
  2529.              and the tape box.
  2530.  
  2531.            - Print 2 Rolodex and 3 index card formats and sizes.  VIDLIB
  2532.              supports pin-feed Avery formats, too.
  2533.  
  2534.            - Three report formats including a beautiful catalog sheet
  2535.              and a special report for your insurance company!
  2536.  
  2537.            - Supports dot-matrix, laser or letter quality printers.
  2538.  
  2539.          VIDLIB is exceptionally fast on any computer, even XT's and PC's.
  2540.          It works handsomely on color or monochrome (black/white) monitors.
  2541.  
  2542.          And VIDLIB uses the popular dBase (DBF) file structure.  So
  2543.          you can access, read and edit VIDLIB databases using dBase III,
  2544.          dBase III+, dBase IV, Clipper -- or our own PDT program.
  2545.  
  2546.  
  2547.                                                                        
  2548.  
  2549.          ==============================================================
  2550.          Text Font                  Change fonts on EGA or VGA monitors
  2551.          ==============================================================
  2552.  
  2553.          What is Text Font?
  2554.          ==================
  2555.  
  2556.           * Have you ever wanted to replace the dull, ordinary font
  2557.             your PC normally uses to display text?
  2558.  
  2559.           * Would you like **dozens** of alternative text fonts to
  2560.             use as your preferences, needs or moods change?
  2561.  
  2562.           * Have you ever wanted to surprise or amuse friends by dis-
  2563.             playing messages in unusual, dramatic or striking fonts?
  2564.             Would you like to watch as your boss or a co-worker returns
  2565.             from lunch to see everything on his/her screen backwards,
  2566.             tiny, large or in some other font?
  2567.  
  2568.           * Are you visually impaired?  Is someone you know?  Would
  2569.             larger or bolder fonts make it easier to use the PC?
  2570.  
  2571.           * Do you use presentation programs (like our P~F Presents)?
  2572.             Would you like to customize the way messages and text
  2573.             appear on the screen?  Would you like to change text
  2574.             fonts whenever you like?
  2575.  
  2576.           * In batch files or menu programs, would you like to:
  2577.  
  2578.             - Customize the way text and options appear?
  2579.  
  2580.             - Display different types of messages in different fonts?
  2581.               Menu options in one font.  Error messages in another.
  2582.  
  2583.             - NOTE:  Text Font is a terrific addition to our Sparkle
  2584.               batch file enhancer!
  2585.  
  2586.  
  2587.          If you answered "YES" to any of these questions, you'll find
  2588.          Text Font a welcome and valuable addition to your tool kit!
  2589.  
  2590.  
  2591.          On EGA or VGA monitors, Text Font offers about 40 unique
  2592.          fonts to replace the ordinary font your PC uses.  These offer
  2593.          variety, drama and usefulness.
  2594.  
  2595.           * Try Script, Old English, Medieval, Tall Bold, or Future.
  2596.  
  2597.           * Or try Hebrew, Cyrillic or Thai.
  2598.  
  2599.           * Or try Reverse, Underlined or Backwards.
  2600.  
  2601.           * And on and on and ....
  2602.  
  2603.  
  2604.                                                                        
  2605.  
  2606.          ==============================================================
  2607.                      APPENDIX  II:  Registering and Ordering
  2608.          ==============================================================
  2609.  
  2610.          Because we offer so many programs, our order form has 2 pages.
  2611.  
  2612.           * THIS PAGE lists our programs and the per-copy cost of each.
  2613.             The section immediately above describes each or our programs.
  2614.  
  2615.           * THE NEXT PAGE is the actual order form.
  2616.  
  2617.             - On the next page, fill in the name of each program you're
  2618.               ordering.  PLEASE BE CAREFUL here and use the names listed
  2619.               below.  If we're not sure which program you're ordering,
  2620.               we may have to return you're order (or call collect?).
  2621.  
  2622.             - If ordering by Visa or MasterCard, fill in the section
  2623.               for credit card orders.  BE SURE TO SIGN it.
  2624.  
  2625.          Program Name                                          Per Copy
  2626.          ==============================================================
  2627.          The Printer      Programmer's Printer Database & Tools  $49
  2628.  
  2629.          Text Font, TF-R (Resident) plus complete font library   $19
  2630.  
  2631.          Multi-Print      Recommended! ($25 w/ purchase > $100)  $39
  2632.  
  2633.          PDT              The Pro~Formance Data Tool             $99
  2634.          PDT Tool Kit     Many utilities to create/manage data   $39
  2635.  
  2636.          inform-Z         Professional Forms Design/Database     $49
  2637.  
  2638.          Mail Call        With MC Express                        $49
  2639.            "    "         Without MC Express                     $45
  2640.  
  2641.          Pro~Scribe & PS Express                                 $39
  2642.  
  2643.          P~F Presents     Professional                           $79
  2644.           "     "         Plus (with intro. copyright)           $49
  2645.  
  2646.          P-Screen Professional                                   $49
  2647.              "    Plus                                           $29
  2648.  
  2649.          Pro~Stamp        Stamp Collection Manager               $29
  2650.  
  2651.          Ram-Man          RAM-resident Text File Browser         $19
  2652.  
  2653.          Sparkle AND Menu Magic                                  $29
  2654.  
  2655.          VidLib           Video Tape Librarian and Database      $39
  2656.  
  2657.          The Survey Catalyst                                    $495
  2658.  
  2659.        =================================================================
  2660.        PACKAGE DISCOUNTS  Call about quantity discounts & site licenses.
  2661.        =================================================================
  2662.          inform-Z AND Mail Call                                  $79
  2663.  
  2664.          P-Screen Pro AND P~F Presents  (Pro versions of both)  $109   
  2665.  
  2666.  
  2667.   =============================== TO  ORDER  ===============================
  2668.  
  2669.    For FASTEST delivery of your programs, CALL with your Visa/MC card number.
  2670.  
  2671.  
  2672.    F ____________________________________________  M    Rob W. Smetana
  2673.                                                         Pro~Formance
  2674.    R ____________________________________________  A T  132 Alpine Terrace
  2675.                                                         San Francisco, CA 94117
  2676.    O ____________________________________________  I O  (415) 863-0530
  2677.  
  2678.    M ____________________________________________  L    Make checks payable to
  2679.                                                             Rob W. Smetana
  2680.    Phone (      ) ______-________  Date ___/___/___
  2681.  
  2682.   ----------------------------------------------------------------------------
  2683.                           For Visa or MasterCard Orders
  2684.   ----------------------------------------------------------------------------
  2685.  
  2686.    Credit Card Number:  __________________________________   Expires: ___|___
  2687.  
  2688.    Signature (Required for credit card orders): _____________________________
  2689.  
  2690.     Be sure your name at the top matches how it appears on your credit card.
  2691.  
  2692.   ================================================================== ptr 0.9 =
  2693.  
  2694.   Program/Package Name (see last page)    # of Copies  Price/Copy     Total
  2695.  
  2696.   ============================================================================
  2697.  
  2698.   ________________________________________  ________  x  ______   =  $_______
  2699.  
  2700.   ________________________________________  ________  x  ______   =  $_______
  2701.  
  2702.   ________________________________________  ________  x  ______   =  $_______
  2703.  
  2704.   ________________________________________  ________  x  ______   =  $_______
  2705.  
  2706.   ________________________________________  ________  x  ______   =  $_______
  2707.  
  2708.   ________________________________________  ________  x  ______   =  $_______
  2709.  
  2710.   ----------------------------------------------------------------------------
  2711.  
  2712.   Shipping & Handling::: Total Number         @ $4/copy (US/Canada)
  2713.   of Programs (and Copies)    ----->>  _____  @ $8/copy (Elsewhere) $ _______
  2714.  
  2715.   -----------------------------+----------------------------------------------
  2716.                                |                          Subtotal  $ ________
  2717.    INTERNATIONAL ORDERS: : :   |
  2718.                                | California residents, add 8.5% tax $ _______
  2719.    * US funds only please.     +-------------------------+--------------------
  2720.    * Money order, check drawn a                          |
  2721.      US bank, or VISA/MasterCard                         |   TOTAL  $ ________
  2722.   -------------------------------------------------------+--------------------
  2723.                                                                            
  2724.     
  2725.